您不必担心通过属性访问字段所需的额外代码,它会被JIT编译器“优化”(通过内联代码)。除非它太大而无法内联,否则无论如何您都需要额外的代码。
而且用于定义简单属性的额外代码也很少:
public int MyProp { get; set; } // use auto generated field.当您需要 自 定义时,您以后总是可以定义自己的字段。
因此,您剩下了额外的封装/数据保护层,这是一件好事。
我的规则: 总是通过属性公开字段

您不必担心通过属性访问字段所需的额外代码,它会被JIT编译器“优化”(通过内联代码)。除非它太大而无法内联,否则无论如何您都需要额外的代码。
而且用于定义简单属性的额外代码也很少:
public int MyProp { get; set; } // use auto generated field.当您需要 自 定义时,您以后总是可以定义自己的字段。
因此,您剩下了额外的封装/数据保护层,这是一件好事。
我的规则: 总是通过属性公开字段