编程:什么时候使用字段field而不是属性property?
使用场景:考虑使用字段:1、请勿提供public或protected字段。应提供用于访问字段的属性或方法,而不是将字段设为public或protected。属性可用作公共数据成员,但它们实际上是称为 访问器 的特殊方法。结论:某些数据属于类内部私有的,请定义成私有字段。某些数据允许其他类访问或者编辑,请定义成属性。使用场景:考虑使用字段:1、请勿提供public或protected字段。应提供用于
使用场景:考虑使用字段:1、请勿提供public或protected字段。应提供用于访问字段的属性或方法,而不是将字段设为public或protected。属性可用作公共数据成员,但它们实际上是称为 访问器 的特殊方法。
结论: 某些数据属于类内部私有的,请定义成私有字段。 某些数据允许其他类访问或者编辑,请定义成属性。 使用场景: 考虑使用字段: 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; } }