1。访问修饰符
a)public 访问不受限制
b)private 访问仅限于包含类。
d)internal 访问仅限于当前程序集
e)protected internal 访问仅限于当前程序集或从包含类派生的类型
小结:
protected和internal为共有和私有访问提供了一个中间保护层
一个派生方法覆盖一个基类成员时,就可以从派生类访问基类成员,具体做法就是base后面再加一个远点运算符(.)。
enum和interface的成员默认为public
如果在成员声明中未指定访问修饰符,则使用默认的可访问性,类和结构默认为internal;在类、和结构中的成员默认为private
命名空间没有修饰符
2。构造函数和析构函数
a)构造函数
作用:初始化类的字段
特点:①无返回值类型
②构造函数本质的也是一个方法,可以重载,与方法重载一样,判断是否是重载 构造函数与返回值类型无关,只要名字与类名一样即可
③如果没有为对象提供构造函数,则默认情况下C#将创建一个无参的构造函数。如果有构造函数,那么默认的构造函数将会被覆盖,想要用无参的构造函数则要再定义一个
静态构造函数不可以有参数,在new的时候先调用的是这个静态的构造函数
b)析构函数:~类名()
特点:①析构函数只能在类中定义,不能在结构中定义析构函数
②析构函数没有修饰符也没有参数
③无法继承或重载析构函数
④无法调用析构函数,它是被自动调用调用的
⑤一析构函数个类只能有一个
3、字段
作用:存储数(类或结构中的对象或值)
字段可以声明为readonly(只读字段),只读字段只能在定义和构造函数中赋值,而常量只能在定义时赋值,赋值完就不能再改变
静态成员属于类(通过类名可以调用)
非静态成员属于对象(通过对象可以调用)
4、属性
作用:封装字段,本身不存储数据
不能将属性作为ref参数或out参数传递(因为不作为变量来分类)