我们在我的团队中对是否应该将注入的依赖项存储为只读字段存在小分歧:
public class MyClient
{
private readonly IService service;
public MyClient(IService service)
{
this.service = service;
}
}
Run Code Online (Sandbox Code Playgroud)
或作为私有只读属性:
public class MyClient
{
private IService Service { get; }
public MyClient(IService service)
{
Service = service;
}
}
Run Code Online (Sandbox Code Playgroud)
一种选择比另一种选择有什么优势吗?我喜欢前者,但似乎我们班有一半使用后者。
您应该使用只读字段。
在字段上使用属性的三个原因:
第 2 点是为什么人们建议为所有公共(有时是受保护的)成员使用属性而不是字段。第 1 点(可能还有第 3 点,在极少数情况下)是您创建私有财产的唯一原因。
这些要点都不适用于这里。该物业只是增加了额外的开销,没有理由为零收益支付这笔费用。
| 归档时间: |
|
| 查看次数: |
384 次 |
| 最近记录: |