Resharper 建议我将以下代码更改为自动属性。谁能解释为什么这样会更好?
private List<Configuration> _configurations;
public List<Configuration> Configurations
{
get { return _configurations; }
set { _configurations = value; }
}
收件人:
public List<Configuration> Configurations { get; set; }
为什么可以对基本类型执行此操作,但建议对对象类型执行此操作?
最佳答案
考虑两段等效的代码:
private List<Configuration> _configurations;
public List<Configuration> Configurations
{
get { return _configurations; }
set { _configurations = value; }
}
和
public List<Configuration> Configurations { get; set; }
对于读者来说,假设她了解 C#,第二段代码可以很快阅读。第一个需要更长的时间并且不添加任何信息。事实上,它添加了无用的信息:我有一个属性 Configurations
,但我也有一个等效字段 _configurations
,并且该类其余部分的代码可能使用任何他们,所以我必须把他们都考虑在内。现在假设您的类有 15 个这样的属性,例如。使用自动属性可以大大降低阅读代码的人的复杂性。
此外,如果您一直使用自动属性,那么每当您编写非自动属性时,读者都会立即收到警告,其中有一些事情正在发生。如果您不使用自动属性,这些有用的信息将被隐藏。
总而言之,自动属性的一致使用:
- 减少代码长度
- 减少阅读和理解类(class)所需的时间
- 隐藏无用信息
- 使有用的信息更容易找到
有什么不喜欢的?
关于c# - 再锐化。为什么要转换为汽车属性(property)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13988043/