什么时候使用字段而不是属性
结论:
某些数据属于类内部私有的,请定义成私有字段。
某些数据允许其他类访问或者编辑,请定义成属性。
使用场景:
考虑使用字段:
1、请勿提供public或protected字段。
应提供用于访问字段的属性或方法,而不是将字段设为public或protected。
2、把永远不会更改的常量设置为constants字段
编译器会直接将常量字段的值编译到调用代码中
3、对于预定义对象实例使用public static readonly字段
考虑使用属性:
可以把属性看做字段Plus,它们具有字段的调用语法,同时兼备方法的灵活性。
1、如果调用方不能更改属性的值,可以创建 get only 属性
2、set only属性没有意义,不要提供其 Setter 可访问性范围比 Getter 大的属性
概念:
字段是在类或结构中直接声明的任意类型的变量。
属性是一种成员,它提供灵活的机制来读取、写入或计算私有字段的值。 属性可用作公共数据成员,但它们实际上是称为 访问器 的特殊方法。 这使得可以轻松访问数据,还有助于提高方法的安全性和灵活性。
栗子:
public class Person { private string _name; public string Name { get { return _name; } set { _name = value; } } //自动属性会自动给我们创建私有字段 public int Age { get; set; } }