private,protected,public和internal的区别
2016-06-23 09:44
351 查看
private 只能在本类中使用
protected 只能在本类与子类中使用
internal 只能在同一命名空间(程序集)中使用
例子:
该示例包含两个文件:Assembly1.cs 和 Assembly2.cs。第一个文件包含内部基类 BaseClass。在第二个文件中,实例化 BaseClass 的尝试将产生错误。
在此示例中,使用与示例 1 中所用的文件相同的文件,并将 BaseClass 的可访问性级别更改为 public。还将成员 IntM 的可访问性级别更改为internal。在此例中,您可以实例化类,但不能访问内部成员。
public 所有类均可使用
protected 只能在本类与子类中使用
internal 只能在同一命名空间(程序集)中使用
例子:
该示例包含两个文件:Assembly1.cs 和 Assembly2.cs。第一个文件包含内部基类 BaseClass。在第二个文件中,实例化 BaseClass 的尝试将产生错误。
// Assembly1.cs // compile with: /target:library internal class BaseClass { public static int intM = 0; }
// Assembly1_a.cs // compile with: /reference:Assembly1.dll class TestAccess { static void Main() { BaseClass myBase = new BaseClass(); // CS0122 } }
在此示例中,使用与示例 1 中所用的文件相同的文件,并将 BaseClass 的可访问性级别更改为 public。还将成员 IntM 的可访问性级别更改为internal。在此例中,您可以实例化类,但不能访问内部成员。
// Assembly2.cs // compile with: /target:library public class BaseClass { internal static int intM = 0; }
// Assembly2_a.cs // compile with: /reference:Assembly1.dll public class TestAccess { static void Main() { BaseClass myBase = new BaseClass(); // Ok. BaseClass.intM = 444; // CS0117 } }
public 所有类均可使用
相关文章推荐
- 写程序不需要天份,也不需要热情
- HDU2025 查找最大元素
- Beta阶段项目总结
- vue.js快速上手。
- 构建之法阅读笔记04
- 修改UITextfield的Placeholder字体的颜色
- C语言SOCKET编程指南
- 个人作业二:个人简介
- java反编译工具
- 深入学习理解java:ExecutorService invokeAll 任务的批量提交invokeAll两种方法的区别
- 通过HTTP请求图片,同时转为二进制流返回
- 数据库SQL优化大总结之 百万级数据库优化方案
- 使用virt-manager管理多台虚拟机
- eclipse xml文件中按alt+/ 没有提示信息
- jetty9与springmvc无法访问页面
- 在SpringMVC中使用WebSocket
- studio 链接手机 不能选中当前运行程序----解决方法
- js jquery json ajax区别
- laravel 控制器方法里存get值 和 blade 模板获得闪存值的方法
- xcode缓存清理