我的项目包含大量具有属性的类,其后备字段标记为只读,因为它们仅在构造时设置.作为一种风格问题,我喜欢使用自动属性,因为它消除了大量的样板代码,并鼓励使用属性成员而不是支持字段.但是,当使用自动属性时,我失去了我的支持字段的"readonly-ness".我知道当字段以这种方式标记时,编译器/运行时能够利用一些性能增强,所以我希望能够将我的auto-property标记为readonly,如下所示:
[ReadOnly]
public string LastName { get; }
Run Code Online (Sandbox Code Playgroud)
而不是
private readonly string _LastName;
public string LastName
{
get
{
return _LastName;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一些机制可以做到这一点?如果没有,自定义支持字段的性能增益是否真的值得?
我认为,将该字段公开为公共是另一种选择,以这种方式公开字段似乎是错误的.即
public readonly string LastName;
Run Code Online (Sandbox Code Playgroud) 自动属性让我替换此代码:
private MyType myProperty;
public MyType MyProperty
{
get { return myPropertyField; }
}
Run Code Online (Sandbox Code Playgroud)
使用此代码:
public MyType MyProperty { get; private set; }
Run Code Online (Sandbox Code Playgroud)
在这里和那里进行一些更改 - 但有没有办法替换此代码:
private readonly MyType myProperty;
public MyType MyProperty
{
get { return myPropertyField; }
}
Run Code Online (Sandbox Code Playgroud)
有类似的东西?