一、C#中已声明的可访问性
1. public:访问不受限制;
2. internal:访问仅限于所属程序集;
3. protected:访问仅限于当前类和其子类;
4. internal protected:访问仅限于当前程序集或其子类(子类可以不属于当前程序集);
5. private:访问仅限于包含该成员的类型。
二、默认可访问性
1. 命名空间(namespace)隐式地具有public访问性,且不允许有访问修饰符;
2. 编辑单元或命名空间中声明的类型可以具有public或internal可访问性,默认为internal;
3. 类(class)的默认访问级别为internal;
4. 结构体(struct)默认访问级别为private;
5. 接口(interface)默认访问基本为internal;但是如果在其他public类中使用时,必须为public;
6. 类和结构体成员(成员函数和成员变量)默认访问级别为private;(但是声明为命名空间成员的类型只能具有public或internal可访问性);
7. 接口的成员隐式地具有public可访问性,在接口成员的声明中不允许使用访问修饰符;
6. 枚举的成员隐式地具有public可访问性,声明中不允许使用访问修饰符。