Resharper建议我将以下代码更改为自动属性.任何人都可以解释为什么这会更好?
private List<Configuration> _configurations;
public List<Configuration> Configurations
{
get { return _configurations; }
set { _configurations = value; }
}
Run Code Online (Sandbox Code Playgroud)
至:
public List<Configuration> Configurations { get; set; }
Run Code Online (Sandbox Code Playgroud)
为什么可以对原始类型执行此操作,但为对象类型建议这种方式?
Gor*_*pik 15
考虑两个相同的代码片段:
private List<Configuration> _configurations;
public List<Configuration> Configurations
{
get { return _configurations; }
set { _configurations = value; }
}
Run Code Online (Sandbox Code Playgroud)
和
public List<Configuration> Configurations { get; set; }
Run Code Online (Sandbox Code Playgroud)
对于读者来说,假设她对C#有所了解,那么第二部分代码可以非常快速地阅读.第一个需要更长时间,不添加任何信息.事实上,它添加了无用的信息:我有一个属性Configurations,但我也有一个等效的字段_configurations,并且该类其余部分的代码可能使用它们中的任何一个,所以我必须考虑它们.现在假设你的类有15个这样的属性,例如.使用自动属性可以大大降低阅读代码的人的复杂性.
此外,如果你一直使用自动属性,每当你写一个非自动属性时,会立即警告读者有一些事情发生.如果您不使用自动属性,则会隐藏此有用信息.
总之,一致使用自动属性:
有什么不喜欢的?
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |