第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币余额
- 我的收藏
- 我的下载
- 下载帮助