随笔分类 - C#面向对象基础
1
摘要:1、类型上的区别: 类是引用类型,结构体是值类型2、在构造函数上的区别: 1、类中写了一个新的构造函数后,默认的无参数的构造函数就被干掉了;在结构中,写了一个新的构造函数后,默认的那个无参的构造函数还在。 2、类中可以有多个构造函数;结构体中只能有两个,一个是默认的无参的构造函数,一个是全参数...
阅读全文
摘要:静态类的构造函数只调用一次,在调试过程中,不会进入到静态类的构造函数中。 静态类只能包含静态成员,静态类的构造函数不能加访问修饰符修饰
阅读全文
摘要:1、普通属性 自动属性 //由对应的私有字段的,是普通属性 private MobileStorage _ms; internal MobileStorage Ms { get { return _ms; } ...
阅读全文
摘要:3. 用接口来实现多态 接口是一种规范,也是一种能力,当一个类要表现出某种能力的时候,一般都用接口来实现。 声明接口的方式: 接口的名称一般以 I 开头,以able结尾。因为以able结尾的单词代表某种能力。 [public] interface I .. able { 成员; } ...
阅读全文
摘要:2、抽象类 抽象类的特点: 1)、抽象类中的抽象成员必须标记为abstract,并且不能有任何实现。 方法不能有任何实现是指,方法没有大括号,也没有方法体。 只有大括号,没有方法体的方法叫做空实现。 2)、抽象成员必须标记在抽象类中 3)、抽象类是有构造函数的,但抽象类不能被...
阅读全文
摘要:HashTable 被称为键值对集合,类似于字典,根据key可以找到value键值对对象[键]=值;键值对集合当中,键必须是唯一的,而值是可以重复的1. HashTable的用法 //创建了一个键值对集合对象 Hashtable ht = new Has...
阅读全文
摘要:1. ArrayList与数组 数组的长度不可变,元素的类型单一; ArrayList 实际上相当于一个可变长度的动态数组,由于集合中的元素都是object类型,元素的类型可以有多种了;与数组一样,都可以用下标来访问元素。 2. ArrayList的常用的方法 ArrayList list...
阅读全文
摘要:1. 读取文件的方法: 1. 声明一个文件流: 目的是为了内存与文件之间的桥梁,可以进行数据的往来。 FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.None); 4个参数的意义 ...
阅读全文
摘要:1、文件操作常用相关类a)File //操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。b)Directory //操作目录(文件夹),静态类c)DirectoryInfo //文件夹的一个“类”,用来描述一个文件夹对象d)FileInfo //文件类,用来描述一个文件对象e)Path...
阅读全文
摘要:1. 使用StringBuilder的好处 由于string对象是不可更改的,我们每次使用string类的方法时,都会在内存中重新创建一个新的string对象,这时候就要为该对象分配内存空间了。如果在一段代码中,频繁执行string类的方法来修改字符串对象,那么内存消耗就会很大。例如,在一个循环...
阅读全文
摘要:1、object类 所有类都继承于object类,是顶级父类,他有以下成员,都是虚方法: a)ToString() 默认输出对象所属类的全名称(命名空间.类名) b)Equals (Object obj) 比较的是内存地址实质是:== c)GetHashCode() ...
阅读全文
摘要:1.结构体的语法 定义的时候需要使用关键字struct[public] struct结构名{public类型名变量名;…} 我们常见的结构体:System.Drawing.Point、Size、Color注意:1.结构使用时可以new,也可以不new。如果不new,则使用前必须为结构成员赋值。...
阅读全文
摘要:1. 静态方法 VS 实例方法 2. 静态类 (1)常见的静态类:Math、Console、Convert (2)静态类中只能包括静态成员、静态构造函数、常量成员,不能有实例成员,不能有普通构造函数 (3)静态构造函数不能有参数、不能有访问修饰符(默认为private) 静态构造函数的...
阅读全文
摘要:1、面向对象编程的目的 用人类思维的方式编写代码,并交给计算机执行2、面向对象三大特征 封装、继承、多态3、什么是类?什么是对象?类和对象的区别?a)类是模具,创建对象的模具,抽象的。 类是一种数据类型,用户自定义的数据类型(定义了要开辟多大内存) 类组成:字段(类中的变量,如,int nu...
阅读全文
摘要:接口 VS 抽象类 A. 相似之处 1、不能实例化; 2、包含未实现的方法声明; 3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员); 4、在接口中增加一个成员,在抽象类中增加一个抽象方法,所有的继承了接口/抽象类的子类都必须实现这...
阅读全文
摘要:C#中的string是可以通过索引器来访问对象中的字符,但却不能修改字符的值。 我们来看string中关于索引器的定义,如下图。 上图中索引器如同属性一样,具有get方法,却没有set方法,所以这就是为什么C#中的string类型的变量都是只读的。 现在让我们来编写属于自己的索引器: ...
阅读全文
摘要:多态的概念:让一个对象能够表现出多种的状态(类型)。 用一句话来描述多态:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态。 多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。让程序具有扩展性,...
阅读全文
摘要:base关键字专门用来在子类访问父类成员base.标识符:“.”调用父类同名属性、同名函数、构造函数 1 (1)父类person 2 public class Person 3 { 4 public Person() 5 { 6 Console.WriteLine("Person...
阅读全文
摘要:c# 中 is和as 操作符是用来进行强制类型转换的is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常object o = new object(); if (o is Label) { Label lb = (Label)o; ...
阅读全文
摘要:继承是C#的三大特性之一,它实现了多态性和代码复用 我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类。 Student、Teacher、Driver 子类 派生类 Person 父类 基类1. 子类继承了父...
阅读全文
1