黑马程序员技术交流社区

标题: C#中的访修饰符以及他们的访问权限? [打印本页]

作者: 王志远    时间: 2013-9-30 13:27
标题: C#中的访修饰符以及他们的访问权限?
本帖最后由 王志远 于 2013-9-30 15:00 编辑

请问C#中的访修饰符以及他们的访问权限?internal和protected的访问权限谁大?还有在类中没有public的话默认为哪个修饰符,是private还是internal?
请教给位大神,先谢谢了!



作者: 段朝骞    时间: 2013-9-30 13:38
C#中有4个访问修饰符(5个访问修饰级别):

public:访问不受限制。


protected:访问仅限于包含类或从包含类派生的类型。


Internal:访问仅限于当前程序集。


protected internal:访问仅限于当前程序集或从包含类派生的类型。(就是protected和internal集合的并集)


private:访问仅限于包含类型。



在类这个级别(命名空间内)不写访问修饰符,默认为Internal。



在类成员中(类方法外)不写访问修饰符,默认的访问修饰符为private



作者: 王志远    时间: 2013-9-30 13:51
段朝骞 发表于 2013-9-30 13:38
C#中有4个访问修饰符(5个访问修饰级别):

public:访问不受限制。

谢谢了!另外internal和protected的访问权限能比较么?
作者: 段朝骞    时间: 2013-9-30 13:55
王志远 发表于 2013-9-30 13:51
谢谢了!另外internal和protected的访问权限能比较么?

这两个都有各自的访问域
internal可以访问整个程序集
protect仅限于类中和继承类中
这两个不存在包含和被包含关系

作者: 王志远    时间: 2013-9-30 14:59
段朝骞 发表于 2013-9-30 13:55
这两个都有各自的访问域
internal可以访问整个程序集
protect仅限于类中和继承类中

了解了!谢谢!
作者: -___Is、_C    时间: 2013-9-30 15:09
private:私有的  (只能在当前类内部访问)
protected:受保护的(只能在类内部以及所有子类内部访问)
internal:只能在当前程序集内部访问
protected internal :在类内部以及所有子类内部可以访问,也可在当前程序集内访问
public:公共的  (在任何地方都可以访问)
protected与internal没有可比性。protected是在当前类内部写,所有子类都可以访问。而internal是在同一个程序集中可以访问。




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