这个要看类的位置,
如果类,结构,代理,枚举是外置的,那修饰符只有:public 和 internal,默认是internal。
至于private和protected是用来修饰类的成员。
在外置class前面加private,protected根本不会通过编译,不信你试试?
如果是内置的,就是作为另一个类型的成员,也称内部类型(inner type),这样的话,修饰符可以是全部可用修饰符,默认是private。
举例:
class a {} 类a是internal
class b
{
class a {} 类a是private
}
public可以被任意存取;
protected只可以被本类和其继承子类存取;
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
private 是私有的 只能在一个类里面掉用
类和结构默认声明为内部的,除非向类定义添加了关键字 public