这个要看类的位置,
如果类,结构,代理,枚举是外置的,那修饰符只有:public 和 internal,默认是internal。
至于private和protected是用来修饰类的成员。
如果是内置的,就是作为另一个类型的成员,也称内部类型(inner type),这样的话,修饰符可以是全部可用修饰符,默认是private。
举例:
class a {} 类a是internal
c#中类的默认访问修饰符,默认是internal :C#用多种修饰符来表达类的不同性质。
根据其保护级 C#的类有五种不同的限制修饰符:public 可以被任意存取;
protected 只可以被本类和其继承子类存取;
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C# 语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private 只可以被本类所存取。如果不是嵌套的类,命名空间或编译单元内的类只有public和internal两种修饰。
new 修饰符只能用于嵌套的类,表示对继承父类同名类型的隐藏。
abstract 用来修饰抽象类,表示该类只能作为父类被用于继承,而不能进行对象实例化。
抽象类可以包含抽象的成员,但这并非必须。abstract 不能和new 同时用