Tag: backing field

如何在结构构造函数中设置自动属性支持字段的值?

给出这样的结构: public struct SomeStruct { public SomeStruct(String stringProperty, Int32 intProperty) { this.StringProperty = stringProperty; this.IntProperty = intProperty; } public String StringProperty { get; set; } public Int32 IntProperty { get; set; } } 当然,会生成一个编译器错误,读取“this”对象在分配所有字段之前无法使用 。 有没有办法为支持字段或属性本身分配值,还是我必须使用我自己的显式支持字段以老式的方式实现属性?

有或没有支持字段的自动属性 ​​- 首选项?

我知道在使用自动属性时,编译器会在屏幕后面创建自己的支持字段。 但是,在我读过的许多程序中,我看到人们明确地写了 private int _backingField; public int Property { get { return _backingField; } } 上面和下面有什么区别? public int Property { get; private set; } 我明白当你在getter或setter中实际存在副作用时使用该属性是显而易见的,但通常情况并非如此。 此外,我知道您必须在结构的情况下明确使用支持字段,您不能通过属性访问其成员。 我能找到的唯一区别是调用值的方式在它定义的类中是不同的。它是简单的首选项,还是通过其属性调用值或通过直接访问领域? 简单约定?