属性和字段的区别

5 阅读1分钟

在 C# 类中:

字段(Field)

  • 是类的数据成员,直接存储值。
  • 通常用变量声明方式:private bool _useTabSet = true;
  • 访问时没有 get/set 方法,通常用于类内部。

属性(Property)

  • 是类的特性,通过 getset 访问器封装字段。
  • 语法:public bool UseTabSet { get; set; }
  • 可以有访问控制、验证、只读等逻辑。

语法解释:

private bool UseTabSet { get; set; } = true;
  • 这是一个自动实现的属性(Auto-Property),编译器会自动生成一个私有字段来存储值。
  • private 修饰符表示只能在当前类内部访问。
  • { get; set; } 表示有 getter 和 setter,可以读写。
  • = true 是属性的默认初始值。

关系总结:

  • 字段是底层存储,属性是访问和封装字段的方式。
  • 自动属性语法让你不用手动声明字段,编译器自动处理。

示例:

// 字段
private bool _useTabSet = true;

// 属性(手动实现)
public bool UseTabSet
{
    get { return _useTabSet; }
    set { _useTabSet = value; }
}

// 自动属性(推荐用法)
public bool UseTabSet { get; set; } = true;

自动属性简化了代码,推荐用于没有特殊逻辑的场景。