第13章域和属性[文].pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在软件开发中,C#是一种常用的面向对象编程语言,它提供了多种机制来管理类的实例数据,其中最重要的两种是域(Fields)和属性(Properties)。本章主要关注这两个概念,特别是它们在C#中的应用和特性。 域是类中用于存储数据的变量,它们可以直接访问类的内部数据。在C#中,域的声明通常包括类型、修饰符和变量名。例如: ```csharp class A { public int x; public string y; private float z; } ``` 在这个例子中,`x`和`y`是公共域,可以被类的外部访问,而`z`是私有域,只能在类的内部访问。此外,域还可以使用诸如`static`、`readonly`等修饰符来改变其行为。 13.1.2 静态域和非静态域 静态域(Static Fields)在整个类的生命周期中只存在一个实例,不随类实例的创建而分配新的内存。它们是类级别的变量,所有类的实例共享同一个静态域的值。例如: ```csharp class Count { static int count; int number; public Count() { count = count + 1; number = count; } public void show() { Console.WriteLine("object{0}:count={1}", number, count); } } ``` 在上面的`Count`类中,`count`是静态域,随着类实例的创建增加,而`number`是非静态域,每个实例都有自己的`number`值。 13.1.3 只读域 只读域(Readonly Fields)是不可在类的外部修改的域,只能在域声明或构造函数中设置。使用`readonly`修饰符可以确保数据在对象创建后不会被意外修改。例如: ```csharp public class A { public static readonly double PI = 3.14159; public static readonly Color White = new Color(255, 255, 255); public static readonly int kByte = 1024; } ``` `PI`, `White`和`kByte`是只读域,它们提供了一种方便的方式来定义常量或不变的数据。 与`const`关键字相比,`readonly`的主要区别在于`const`的值在编译时确定,而`readonly`的值则在运行时初始化。`const`不能用于引用类型,因为它们的值必须是不可变的,而`readonly`可以用于引用类型,但一旦初始化后就不能更改引用。 属性(Properties)是C#中一种特殊的数据成员,它们提供了对域的访问控制。通过使用属性,可以实现数据验证、计算属性或只读/只写访问。属性通常包含一个或两个访问器(getter和setter),允许读取或设置值。例如: ```csharp class Person { private string name; public string Name { get { return name; } set { name = value.Trim(); } // 添加验证 } } ``` 在这个例子中,`Name`是一个属性,通过`get`访问器获取`name`域的值,`set`访问器则设置值,同时进行了字符串修剪的验证。 总结来说,理解和熟练使用域和属性对于C#编程至关重要,它们是构建安全、可维护的软件的基础。了解它们的差异和用法,可以帮助开发者更好地实现数据封装和隐藏,提高代码质量。
- 粉丝: 2
- 资源: 12万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 环境科学中的蒙特卡洛模拟:不确定性的量化与风险评估
- Riscv五级流水线32位cpu,systemverilog编写,指令集rv32i,支持数据前递,csr寄存器与中断控制器,可跑
- IST7156规格书vvvv
- c-for-derivative-pricing
- 自动化代码部署报告:C++项目中的实践与策
- 基于扰动观察法 电导增量法的光伏电池最大功率点跟踪仿真模型 (PLECS平台搭建)
- 基于虚拟阻抗的微电网下垂控制 在微电网中,由于线路阻抗的不同,造成无功功率无法均分,通过添加虚拟阻抗是应用最为广泛的一种方法
- 2013.08.05 C001001 牛顿用他的无穷算法研究圆周运动
- 交通流量分析中的蒙特卡洛模拟:随机性与复杂性的解决之道
- 利用VITO数据集进行2014年至今的NDVI时序监测.ipynb