☰
C# 属性(Property)详解:从基础语法到实战应用
2026/10/9 4:26:27 网站建设 项目流程

1. 什么是属性(Property)

属性是 C# 中一种特殊的成员,它提供了一种灵活、安全的机制来访问和修改类的私有字段。属性通过get和set访问器来封装字段的读写逻辑,既保护了数据的完整性,又保持了面向对象编程的封装性原则。

通常属性包括get{} 访问器和set{} 访问器。get{} 访问器用来返回相应的私有字段的值,使用return关键字返回;set{} 访问器用来设定相应字段的值,相当于一个隐含的输入参数,采用value关键字进行赋值。

2. 属性的基本语法

属性的声明语法由访问修饰符、数据类型、属性名以及访问器组成,基本结构如下:

<访问修饰符> 数据类型 属性名 { get { ... } set { ... } }

其中:

  • 访问修饰符:如public、private、protected等,控制属性的可访问范围。
  • 数据类型:属性所封装字段的数据类型。
  • 属性名:遵循 C# 命名规范,通常使用 PascalCase 命名法。
  • get 访问器:负责读取属性值,必须使用return返回对应类型的数据。
  • set 访问器:负责写入属性值,通过隐式参数value接收外部传入的值。

3. 读写属性详解

读写属性是同时包括 get 访问器和 set 访问器的属性。get 访问器定义对数据的读取逻辑,set 访问器定义对数据的写入逻辑。下面通过一个完整的示例来演示读写属性的用法:

private string _name; public string Name { get { return _name; } set { _name = value; } }

通俗地讲,具有读写属性的字段,既可以通过属性赋值,也可以通过属性取值。这种设计模式带来了以下好处:

  • 数据封装:外部代码无法直接访问私有字段,只能通过属性进行间接操作。
  • 逻辑控制:可以在 set 访问器中添加数据验证、触发事件等逻辑。
  • 灵活性:后续可以随时修改内部实现,而不影响外部调用代码。

4. 实战示例:完整的学生类

下面是一个综合运用读写属性的完整示例,演示了如何在 set 访问器中添加数据验证逻辑:

public class Student { private string _name; private int _age; public string Name { get { return _name; } set { _name = value; } } public int Age { get { return _age; } set { if (value < 0 || value > 150) { throw new ArgumentException("年龄必须在 0 到 150 之间"); } _age = value; } } } // 使用示例 Student student = new Student(); student.Name = "张三"; // 通过 set 访问器赋值 student.Age = 20; // 通过 set 访问器赋值(带验证) Console.WriteLine(student.Name); // 通过 get 访问器取值 Console.WriteLine(student.Age); // 通过 get 访问器取值

在这个示例中,Age属性的 set 访问器加入了数据验证逻辑,当传入的年龄超出合理范围时会抛出异常,从而保证了数据的有效性。

5. 总结

属性是 C# 面向对象编程中实现数据封装的核心机制。通过 get 和 set 访问器,我们可以在不暴露私有字段的前提下,安全地控制数据的读写,并在读写过程中加入必要的业务逻辑。掌握属性的使用,是编写高质量、可维护 C# 代码的重要基础。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询