类的访问修饰符主要有两个:internal和public,默认为internal;这里说的类包括接口、结构体、枚举、委托。
类成员的访问修饰符有四个:public、private、internal、protected;指定了六个可访问性级别:public、private、internal、protected、protected internal、private protected;
内部成员的默认级别:
class: private
enum : public
interface(接口) : public
struct(数据类型)结构,结构体:private
类成员的六个可访问级别说明:
- public:公有访问,不受任何限制,对任何类和成员都完全公开,无限制访问;
- private:私有访问,只限于本类成员访问,子类和实例都不能访问,子类也不能继承父类的私有属性或方法;
- internal:内部访问,只限于本项目内访问,其他项目不能访问(在VS.NET中的一个项目中,这里的项目是指单独的项目,而不是整个解决方案);
- protected:保护访问,只限于本类和子类访问,实例不能访问。虽然能被外界看到,但外界却不能调用,被保护的属性或方法都可以被子类所继承和调用;
- protected internal:内部保护访问,只限于本项目或者子类访问,其他不可访问;
- private protected:私有保护访问,访问限于本类或者当前程序集派生自包含类的类型;
访问级别约束:
- 父类和子类访问修饰符要保持一致;
- 方法的访问修饰符要和方法参数的访问修饰符保持一致;
注意:
private和protected的区别,在同一类中可视为一样,但在继承中就不同了,private在派生类中不可以被访问,而protected可以。