黑马程序员技术交流社区

标题: 关于访问权限问题 [打印本页]

作者: 黄国钢    时间: 2012-4-8 21:22
标题: 关于访问权限问题
本帖最后由 黄国钢 于 2012-4-9 09:12 编辑

C#中,当声明类、方法、字段、属性、枚举等时,不加访问权限修饰符时的默认访问权限是什么?
能否具体说明一下?
作者: 刘真    时间: 2012-4-8 21:36
1.声明命名空间、类,前面不加限制访问修饰符时,默认访问权限为internal——访问仅限于当前程序集。

2.声明类成员(包括字段(变量)、属性和方法)默认为private)以及结构类型,前面不加限制访问修饰符时,默认访问权限为private——访问仅限于当前类。

3.声明枚举类型以及接口类型,前面不加限制访问修饰符时,默认为public且只能为public(就算要把限制访问修饰符写出来,也只能写public,而不能使用其他限制访问修饰符)——访问不受限制。
作者: 刘冬晓    时间: 2012-4-8 21:41
1.声明命名空间、类,前面不加限制访问修饰符时,默认访问权限为internal——访问仅限于当前程序集。

2.声明类成员(包括字段(变量)、属性和方法)默认为private)以及结构类型,前面不加限制访问修饰符时,默认访问权限为private——访问仅限于当前类。

3.声明枚举类型以及接口类型,前面不加限制访问修饰符时,默认为public且只能为public(就算要把限制访问修饰符写出来,也只能写public,而不能使用其他限制访问修饰符)——访问不受限制。
作者: 张云静    时间: 2012-4-8 22:49
C#中有不同等级的访问权限
修饰符    内部类 同一个包 子类 任何地方
private       yes
internal      yes     yes
protected   yes     yes      yes
public         yes     yes      yes      yes
C#中,当声明类、方法、字段、属性等时,不加访问权限修饰符时的默认访问权限说明:
1.声明命名空间、类,前面不加限制访问修饰符时,默认访问权限为internal——访问仅限于当前程序集。
2.声明类成员(包括字段(变量)、属性和方法)默认为private)以及结构类型,前面不加限制访问修饰符时,默认访问权限为private——访问仅限于当前类。
3.声明枚举类型以及接口类型,前面不加限制访问修饰符时,默认为public且只能为public(就算要把限制访问修饰符写出来,也只能写public,而不能使用其他限制访问修饰符)——访问不受限制。
作者: 郭青松    时间: 2012-4-8 23:46
想知道最权威 最专业的解释吗?请看这里
修饰符                    应用于                                       说明
pubilc                             所有的类型和成员                         任何地方都能访问
protect                          所有内嵌的类型成员和成员              只有本类和派生类中才能访问到该项
internal                          当前程序集                            程序集太官方,就是当前的那个命名空间而已。
private                           所有内嵌的类型成员和成员                   只有在本类中才能访问
protect internal               所有内嵌的类型成员和成员              只能包含在当前程序集和当前类的派生类中访问

说明:上面的内内嵌行 指的是  类内部的成员。也就是说 class 是不能申明为 private ,protect和 protect internal的。   
作者: pray    时间: 2014-4-26 06:34
哈哈,看的人少,回一下




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