C# 封装
c#的有5个,比c++多两个
public:所有对象都可以访问;
private:对象本身在对象内部可以访问;
protected:只有该类对象及其子类对象可以访问
internal:同一个程序集的对象可以访问;
protected internal:访问限于当前程序集或派生自包含类的类型。
后面两个是c++没有的,这里记录下。
Internal 访问修饰符
Internal 访问说明符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。
下面的实例说明了这点:
using System; namespace RectangleApplication { class Rectangle { //成员变量 //internal double length; //internal double width; public double length; public double width; public double GetArea() { return length * width; } public void Display() { Console.WriteLine("长度: {0}", length); Console.WriteLine("宽度: {0}", width); Console.WriteLine("面积: {0}", GetArea()); } }//end class Rectangle class ExecuteRectangle { static void Main(string[] args) { Rectangle r = new Rectangle(); r.length = 4.5; r.width = 3.5; r.Display(); r.GetArea(); Console.ReadLine(); } } }
在上面的实例中,请注意成员函数 GetArea() 声明的时候不带有任何访问修饰符。如果没有指定访问修饰符,则使用类成员的默认访问修饰符,即为 private。
这里,如果改成下面的形式,编译会出错
//internal double length;
//internal double width;
double length;
double width;
错误 1 “RectangleApplication.Rectangle.length”不可访问,因为它受保护级别限制 C:\Users\Administrator\documents\visual studio 2010\Projects\internal\internal\Program.cs 29 15 internal
领导,下面的函数没有前缀,说明是private,那么在vs中r.后面是不会有GetArea下拉选项的。
double GetArea() { return length * width; }
Protected Internal 访问修饰符
Protected Internal 访问修饰符允许在本类,派生类或者包含该类的程序集中访问。这也被用于实现继承。这个还不是很熟悉,以后再学
相关文章
- C# http Get/POST请求封装类
- 【C#】工具类-FTP操作封装类FTPHelper
- A2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密)
- 重新整理数据结构与算法(c#)—— 线索化二叉树[二十]
- 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用
- 第03篇:C#星夜拾遗之语法基础
- C# SQLite数据库 访问封装类
- C# 自定义数字格式字符串 ToString ###,###,###,##0
- 10年C#历程的MVP之路与MVP项目介绍
- Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx
- Atitit. C# java 的api 目录封装结构映射总结
- (二十三)c#Winform自定义控件-等待窗体-HZHControls
- c# 查询本机可用的代理ip
- 经验36--C#无名(大事,物...)
- C# 进程间通信之二传递复杂数据类型(转)
- C#学习笔记(五)——函数
- C#学习笔记(三)——流程控制
- C#创建Windows窗体应用程序实例12【文件管理】