我正在阅读this page
我对第一个例子的问题感到困惑。为什么他不能只读私有字段的声明?
答案 0 :(得分:8)
关键字readonly
(或其等价物)以某些语言提供(例如,C#和VB.NET),但不提供其他语言。
C ++是面向对象语言的一个例子,它没有关键字规定“这可以在构造函数的任何部分设置,但不能在其他任何地方设置”。
面向对象的设计模式意味着语言中立:适用于所有面向对象的语言。 由此可见,某些语言可能具有使特定模式过时的额外功能。
在这种情况下,模式的呈现看起来更加愚蠢,因为引入了模式,然后在C#中提供了的示例,它不需要它。
答案 1 :(得分:0)
他很可能会使用readonly
。听起来他不明白readonly
的作用。 From MSDN:
readonly关键字是一个可以在字段上使用的修饰符。当字段声明包含只读修饰符时,声明引入的字段的赋值只能作为声明的一部分或在同一类的构造函数中出现。
你可以在构造函数中设置readonly
个字段。事实上,你必须 - 这些领域还有什么其他意义?