黑马程序员技术交流社区

标题: .NET疑问 [打印本页]

作者: 杜小鹏    时间: 2012-9-18 00:59
标题: .NET疑问
public,protected,private和internal有什么区别啊??求解!!!

作者: 霍永刚    时间: 2012-9-18 02:53
private:只能在本类中使用
protected:在本类中及其子类中可以使用
internal:同一命名空间(程序集)中的类可以使用
public:所有类均可使用
从上到下,私有权限程度逐渐降低……
作者: 许庭洲    时间: 2012-9-18 07:48
1.private :   私有成员, 在类的内部才可以访问。
2.protected : 保护成员,该类内部和继承类中可以访问。
3.public :    公共成员,完全公开,没有访问限制。
4.internal:   在同一命名空间内可以访问。

作者: 孔德智    时间: 2012-9-18 08:13
Public,选择它的方法是在成员声明中包括 public 修饰符。public 的直观含义是“访问不受限制”。
Protected,选择它的方法是在成员声明中包括 protected 修饰符。protected 的直观含义是“访问范围限定于它所属的类或从该类派生的类型”。
Internal,选择它的方法是在成员声明中包括 internal 修饰符。internal 的直观含义是“访问范围限定于此程序”。
Protected internal(意为受保护或内部的),选择它的方法是在成员声明中包括 protected 和 internal 修饰符。protected internal 的直观含义是“访问范围限定于此程序或那些由它所属的类派生的类型”。
Private,选择它的方法是在成员声明中包括 private 修饰符。private 的直观含义是“访问范围限定于它所属的类型”。
声明一个成员时所能选择的已声明可访问性的类型,依赖于该成员声明出现处的上下文。此外,当成员声明不包含任何访问修饰符时,声明发生处的上下文会为该成员选择一个默认的已声明可访问性。

命名空间隐式地具有 public 已声明可访问性。在命名空间声明中不允许使用访问修饰符。
编译单元或命名空间中声明的类型可以具有 public 或 internal 已声明可访问性,默认的已声明可访问性为 internal。
类成员可具有五种已声明可访问性中的任何一种,默认为 private 已声明可访问性。(请注意,声明为类成员的类型可具有五种已声明可访问性中的任何一种,而声明为命名空间成员的类型只能具有 public 或 internal 已声明可访问性。)
结构成员可以具有 public、internal 或 private 已声明可访问性并默认为 private 已声明可访问性,这是因为结构是隐式地密封的。结构的成员若是在此结构中声明的(也就是说,不是由该结构从它的基类中继承的)不能具有 protected 或 protected internal 已声明可访问性。(请注意,声明为结构成员的类型可具有 public、internal 或 private 已声明可访问性,而声明为命名空间成员的类型只能具有 public 或 internal 已声明可访问性。)
接口成员隐式地具有 public 已声明可访问性。在接口成员声明中不允许使用访问修饰符。
枚举成员隐式地具有 public 已声明可访问性。在枚举成员声明中不允许使用访问修饰符。
public, internal, protected internal, private表明类实例方法的可访问性.

public, protected, protected internal, private表明继承时父类方法的可访问性.
作者: 王荟越    时间: 2012-9-18 09:01
private: 声明方法为私有, 中有在类的内可以只用。
protected:保护成员。
public: 声明方法为公共,可以再其他类中访问。
Internal:只能在一个命名空间下,和 public不同public声明方法之后,在以后只要声明类,就可调用public方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2