【问题标题】:Are public fields evil if readonly? [closed]如果只读,公共领域是邪恶的吗? [关闭]
【发布时间】: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


【解决方案1】:

公共字段邪恶的原因之一是,如果针对该字段编译了 100 个其他程序集,然后您决定将其替换为公共属性(包括验证等),则所有这些程序集都必须是也重新编译。

因此,该字段是否为只读并不重要 - 公共字段仍然是邪恶的。

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 2010-12-23
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多