【原创】关于C#访问修饰符protected internal的说明
来源:互联网 发布:ubuntu arm 国内源 编辑:程序博客网 时间:2024/06/05 01:02
关于C#访问修饰符protected internal的说明
C#中有5中访问修饰符,分为是public、protected、private、internal和protected internal。
这5种访问修饰符都可以对类的成员的访问级别进行限制。
但只有public和internal这两个可以限制类的访问级别。
public:类和类的对象都可以访问
protected:类和子类可以访问,值得一提的是在C#中,类的继承具有传递性,也就是说不止子类可以访问父类中的protected成员,子类的子类也可以。。。
private:只有类内部可以访问
internal:只在相同的程序集中可以访问
还有一种就是protected internal,从字面上理解,是只有相同的程序集中类和子类可以访问。
但是不是这样呢?我们不妨来验证一下。
我们新建两个项目A和B,在A中添加类ClassA。
public class ClassA { protected string _name; protected internal int _age; }
在B中添加类ClassB。
class ClassB : A.ClassA { public void Print() { Console.WriteLine(_name); Console.WriteLine(_age); } }
发现程序竟然可以成功编译、运行。如果按照我们前面对protected internal的理解,程序应该编译不通过才对。
我们在A项目中添加ClassC类。
class ClassC { ClassA a = new ClassA(); private void Print() { Console.WriteLine(a._age); } }发现可以成功编译、运行。
其实protected internal访问修饰符是限制能在本程序集中完全访问,还有在其它程序集中继承访问。
0 0
- 【原创】关于C#访问修饰符protected internal的说明
- c#访问修饰符之“protected internal”
- c#中访问修饰符public,private,protected,internal,protected internal的区别
- c#访问修饰符 (public、protected、private、protected、 internal)
- 关于C#中的几个访问修饰符的说明private,public,protected...
- C#访问修饰符:public、protected、internal、private
- C#访问修饰符(Public/Private/Protected/Internal)
- C# 访问修饰符 public、private、protected、internal
- C# 访问修饰符public、protected、internal、private的访问范围误区释疑
- c#中的访问修饰符Protected,privet ,public, internal,和internal protected
- C#共有五种访问修饰符:public、private、protected、internal、protected internal.
- C#中五种访问修饰符作用范围 public、private、protected、internal、protected internal
- C#访问修饰符——public ,private , internal ,protected和protected internal
- 一个C#的问卷!private、 protected、 public、 internal 修饰符的访问权限
- 一个C#的问卷!private、 protected、 public、 internal 修饰符的访问权限
- C#中。简述 private、 protected、 public、 internal 修饰符的访问权限
- c#中访问修饰符public、private、protected、internal的区别
- 访问修饰符public,protected,private,internal,protected internal
- 黑马程序员——JAVA日期类型转换
- 服务器 libevent中epoll使用实例demo
- 12.阿拉伯数字转化为罗马数字1-3999
- 嵌入式 GDB调试死锁示例
- 深入理解javascript原型和闭包(14)--从自由变量到作用域链
- 【原创】关于C#访问修饰符protected internal的说明
- 关于反编译apk出现Exception in thread "main" java.lang.ClassCastException: ....
- 2014诺贝尔生理学或医学奖揭晓
- acdream 1431 Sum vs Product
- HDU 5017 Ellipsoid (计算几何,模拟退火)
- 20141006
- 最短编辑距离 poj3356
- git 图解Git/图形化的Git参考手册
- VS2005下编译Lua源代码