【发布时间】:2011-04-24 11:39:27
【问题描述】:
我需要在我的类型上实现一个 只读 属性。此外,此属性的值将在构造函数中设置并且不会更改(我正在编写一个公开 WPF 的自定义路由 UI 命令的类,但没关系)。
我看到了两种方法:
class MyClass { public readonly object MyProperty = new object(); }class MyClass { private readonly object my_property = new object(); public object MyProperty { get { return my_property; } } }
所有这些 FxCop 错误都说我不应该有公共成员变量,看来第二个是正确的方法。对吗?
在这种情况下,只获取属性和只读成员之间有什么区别吗?
如果有任何 cmets/建议/等,我将不胜感激。
【问题讨论】:
-
我有时希望自动属性语法包含
get; readonly set;选项。 -
@DanBryant 至少有
get; private set;。 -
@Marc.2377,其实他们不久前就增加了对
{get;}的支持,解决了这个问题。 -
@DanBryant 啊,确实。我应该先阅读答案;)
标签: c# properties readonly