黑马程序员技术交流社区

标题: C#修饰符 [打印本页]

作者: 戴水平    时间: 2012-7-8 12:19
标题: C#修饰符
internal protect 这样组合作用范围是多大。在程序集内部是哪个修饰符起作用,在程序集外部有时哪个修饰符起作用

作者: 常静华    时间: 2012-7-8 12:24
internal   和   protected   internal   都是能在一个类中被这一灯类的程序集引用
internal   是没有受保护的
protected   internal   是受保护的。
internal:只有同一程序集内才可以访问。
internal protected:只是看字面意思容易弄错,许多人认为 internal protected 应该是“只有同一个程序集中的子类可以访问”,但其实它表示“同一个程序集中的所有类,以及所有程序集中的子类都可以访问”。其实本质应该是:internal or protected
作者: 古古头    时间: 2012-7-8 15:39
1.public
无访问限制。
2.internal protected
可以理解为internal或protected,其访问域是internal和protected访问域的并集。
(结构的成员不可使用,因为结构不可被继承,所以谈不上protected)
3.internal
当前程序集访问。
4.protected
在同一类或子类内的代码可以访问,即使子类在不同的程序集。
(同样的,不适用于结构中的成员)
5.private(默认)
只有在同一类或结构内的代码可以访问。
更多内容,请看我最近写的一篇原创博客
作者: 古古头    时间: 2012-7-8 15:40
古古头 发表于 2012-7-8 15:39
1.public
无访问限制。
2.internal protected

http://blog.csdn.net/lcprogram/article/details/7712618
链接没弄上去,怎么回事?
作者: 侯慧杰    时间: 2012-7-8 16:54

internal :是在本项目中使用,在其他项目中不能访问
protect:在本项目不是该类的继承的类不能使用,但在其他项目中继承该类的时候能访问
internal protect:在本项目中表现为protect,在其他项目中表现为internal
作者: 魏振龙    时间: 2012-7-8 18:31
public:访问不受限制
protected:访问仅限于包含类或从包含类派生的类型。
internal:访问仅限于当前项目。
protected internal:访问仅限于从包含类派生的当前项目或类型。
private:访问仅限于包含类型。
作者: 杨正    时间: 2012-7-8 23:46
internal protect 这样组合作用范围是多大。在程序集内部是哪个修饰符起作用,在程序集外部有时哪个修饰符起作用

纠正一点,是protect internal而不是internal protect。
访问修饰符说明:
public 公有访问。不受任何限制。
private 私有访问。只限于本类成员访问,子类,实例都不能访问。
protected 保护访问。只限于本类和子类访问,实例不能访问。
internal 内部访问。只限于本项目内访问,其他不能访问。
protected internal 内部保护访问。只限于本项目或是子类访问,其他不能访问 。

internal 其实相当于private internal,也就成了private internal和protected internal的区别了。 private   :访问仅限于当前程序集;protected   :访问仅限于当前程序集或从包含类派生的类型。




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