Dan*_*fer 19 c# constructor struct 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; }
}
Run Code Online (Sandbox Code Playgroud)
当然,会生成一个编译器错误,其中包含"this"对象在分配所有字段之前无法使用.
有没有办法为支持字段或属性本身分配值,或者我是否必须使用我自己的显式支持字段以老式方式实现属性?
Mar*_*ell 45
你需要使用"this"构造函数:
public SomeStruct(String stringProperty, Int32 intProperty) : this()
{
this.StringProperty = stringProperty;
this.IntProperty = intProperty;
}
Run Code Online (Sandbox Code Playgroud)
这样做会调用默认构造函数,通过这样做,它会初始化所有字段,从而允许this在自定义构造函数中引用.
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |