C# 属性(set方法和get方法)

介绍

C# 属性,对 字段 的封装,通过 get 和 set 访问器控制读写行为。提供了一种更安全的方式来访问和修改字段的值。

作用

保护字段的访问,添加逻辑(如验证、计算)。

本质

本质是方法(编译器生成get_X和set_X方法)。

访问权限

可独立设置get和set的可见性。

Java程序员理解

C# 的 字段,相当于Java的 属性 或 成员变量

C# 的 属性,与Java的属性不是一个意思。其作用相当于 Java成员变量的 setter 和 getter 方法

完整写法

  1. 定义私有 字段,如:name,开头字母一般小写
  2. 定义 属性,注意: 属性名与 字段名不同,否则会有问题,如:Name ,开头字母一般大写
// 定义私有字段
private string name;

// 定义属性
public string Name
{
    get { return name; }
    set { name = value; } // value表示外部传入的值
}

解释:

  • Name:属性封装了私有字段 name

  • get:访问器用于获取字段值

  • set:访问器用于设置字段值,value 表示外部传入的值

简化写法

自动实现的属性

编译器会自动为 Name 属性生成一个私有的匿名字段来存储值

public string Name { get; set; }

设置值:

Name = "李雷";

获取值:

string s = Name;

设置初始值

public string Name { get; set; } = "李雷";

只可读

注意:下面的写法是只能获取,无法设置值,即使在本类中也不能设置值

public string Name { get; }

本类中可写,外部可读

public string Name { get; private set;}

参考:
https://www.runoob.com/csharp/csharp-property.html
https://blog.csdn.net/qq_39847278/article/details/145626638