很奇怪的一点是,网上搜索了一些访问修饰符的资料,居然有些是错误的。现归纳如下:
类的访问修饰符(非内部内)
private: 不可用
protected: 不可用
protected internal: 不可用
internal: 限定与本Assembly内
public: 无限制
默认:=internal
类成员的访问修饰符
private: 限定于本类
protected: 限定与派生类
protected internal: 限定与派生类及本集合内。如果派生类在另一集合内,也可被访问。
internal: 限定与本Assembly。即使在某段程序内,类实体被拓展为public,在集合外,类实体内的该变量也是不可访问的。
public: 无限制
默认: =private
接口的访问修饰符
private: 不可用
protected: 不可用
protected internal: 不可用
internal: 限定与本Assembly内
public: 无限制
默认:=internal
接口成员的访问修饰符
private: 不可用
protected: 不可用
protected internal: 不可用
internal: 不可用
public: 无限制
默认:=public
命名空间内或编译单元顶部的委托
internal:
public:
默认:=internal