###访问修饰符
1、类型访问修饰符public、internal
2、类型成员访问修饰符public、internal、private、protected、internal protected
3、
public
:最高访问级别。对访问公共成员没有限制
private
:最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的
protected
:受保护成员在其所在的类中、派生类中可以访问。(父子类中可以访问,准确来说是派生类)
internal
:同一程序集的文件中,内部类型或成员才是可访问的
###非访问修饰符(关键字)
abstract
指示某个类只能是其他类的基类。抽象类里面可以有非抽象方法,但是抽象方法必须在抽象类里。
async
指示所修改的方法、 lambda 表达式或匿名方法是异步的。
const
指定无法修改字段或局部变量的值。
event
声明事件
extern
指示在外部实现方法。
new
从基类成员隐藏继承的成员。
override
提供从基类继承的虚拟成员的新实现。
partial
— 部分在整个同一程序集中定义分部类、结构和方法。
readonly
声明一个字段,该字段只能赋值为该声明的一部分或者在同一个类的构造函数中。
sealed
指定类不能被继承。
static
声明属于类型本身而不是属于特定对象的成员。
unsafe
声明不安全的上下文。
virtual
在派生类中声明其实现可由重写成员更改的方法或访问器。
volatile
指示字段可由操作系统、硬件或并发执行线程等在程序中进行修改。
###默认访问修饰符
1、命名空间中定义的元素 没有指定访问修饰符时,默认是internal
,并且无法显式地声明为private、protected或protected internal
2、成员的访问修饰符没有指定时,默认是private
、有个特殊情况接口中成员的默认类型是public,实现是必须public的
###访问修饰符不一致
1、方法的可访问性 < 返回类型的可访问性
比如说:public XX Method (){ return xx }
XX是自定义的类 是私有的
就会冲突
###不可访问,因为它受保护级别的限制
1、访问性级别出错提示,可能它是internal 结果你在另一个程序集里出现了。