【发布时间】:2013-12-12 14:39:28
【问题描述】:
我读过很多观点认为公共领域是邪恶的,公共属性被设计成公共的,我们可以用 setter 和 getter 等做超级伟大的事情。
我的理解是,虽然很少,但只读字段会影响性能(而且,无论是否与性能相关,我知道 FXCop 和 Resharper 都会提示我尽可能使用只读字段)。
我知道我们不能在 .NET 中拥有只读属性,但是只读公共字段仍然是邪恶的吗?
【问题讨论】:
-
“我知道我们不能在 .NET 中拥有只读属性”——以什么方式?您可以拥有一个没有 setter 的属性...
-
@JonSkeet,你是说
public string s {get...}的处理方式与private readonly string s相同吗?如果是这样,我将删除我的问题 -
那不是有效的代码。但是您可以拥有
private readonly string name; public string Name { get { return name; } },这是一个由只读字段支持的只读属性。 -
@DaveRook:不,只读字段只能在构造函数或变量初始化程序中分配一次,而没有公共设置器的属性的(私有)支持字段可以根据需要随时分配(来自本课程)。
-
这个问题或多或少已经回答了,请参考这个[链接][1][1]:stackoverflow.com/questions/3917796/…
标签: .net properties readonly