<1>访问修饰符
internal:声明为内部类,只有当前项目中代码能够访问(默认的时候也是internal)
public: 公共类,其他项目中的代码可以访问
protected:只有同一类或者结构或者此类的派生类代码才能访问
private: 只有同一个类或者结构的代码可以访问该类型成员
protected internal: 只有在同一个程序集中或者不同程序集中的派生类
(3)类成员(包括嵌套class,struct)可以声明为public,private,protected,internal,protected internal 。类成员,包括嵌套类和结构默认为private。私有的嵌套类 型 不能被它的外围访问。
(4)继承的类不能比基类具有更高的访问级别
(5)关于protected internal,这个比较奇特,在同一个项目中(可以是不同命名空间),这个时候 protected internal 修饰的字段,内部类都可以被同一个项目中的其他代码 访问,这个时候失去了protected的作用了,只有internal起用。
当在另外一个项目中,这个时候就不能访问protected internal修饰的字段了,似乎是 protected和 internal同时起作用,但是在此时构造一个继承原来项目的类,那么在继承 类中可以访问protected internal 修饰的东西,这个时候似乎只有protected起作用了。
internal:声明为内部类,只有当前项目中代码能够访问(默认的时候也是internal)
public: 公共类,其他项目中的代码可以访问
protected:只有同一类或者结构或者此类的派生类代码才能访问
private: 只有同一个类或者结构的代码可以访问该类型成员
protected internal: 只有在同一个程序集中或者不同程序集中的派生类
细节:
(1)可以在命名空间中直接定义的类的访问修饰符只能是internal,public
(2)结构成员(包括嵌套class,struct)只能声明为 public,private,internal(struct不能继承, 所以没有protected)(3)类成员(包括嵌套class,struct)可以声明为public,private,protected,internal,protected internal 。类成员,包括嵌套类和结构默认为private。私有的嵌套类 型 不能被它的外围访问。
(4)继承的类不能比基类具有更高的访问级别
(5)关于protected internal,这个比较奇特,在同一个项目中(可以是不同命名空间),这个时候 protected internal 修饰的字段,内部类都可以被同一个项目中的其他代码 访问,这个时候失去了protected的作用了,只有internal起用。
当在另外一个项目中,这个时候就不能访问protected internal修饰的字段了,似乎是 protected和 internal同时起作用,但是在此时构造一个继承原来项目的类,那么在继承 类中可以访问protected internal 修饰的东西,这个时候似乎只有protected起作用了。
实例代码:
建立两个项目分别为consoleApplication2 ,consoleApplication3
consoleApplication2中有以下以下文件
Class1.cs, Class2.cs,Class3.cs, namespaceTest.cs,Program.cs
//Class1.cs
<