【发布时间】:2016-01-27 11:08:31
【问题描述】:
这些是一样的吗?
public string MyProp { get; }
对比
public string MyProp { get; private set; }
我的意思是在两个版本中,属性都可以在自己的类中设置,但对其他类是只读的?
【问题讨论】:
-
第一个在类内也是只读的。
-
第一个会出现错误。试试看。
-
@OrelEraki 不适用于 C# 6.0。第一个是只读自动实现属性的示例。您只能设置它的初始值,不能更改它。但是,您可以在类中更改第二个
-
对于没有 setter 的属性,您只能从构造函数中 set 值。而
privatesetter 可以通过任何方法来改变值。带有 getter-only 的属性是一种readonly(不可变)属性,您设置一次就忘记了(因为您以后无法更改它)。 -
这是一个有趣的问题。只读属性和具有私有设置器的属性有什么区别?第一个是只读的,第二个只能私有设置。我的意思是,这就是代码所说的以及它是什么,所以......问题到底是什么?好的,第一个是新语法。对于这种语法,这将是一个完全不同的问题。
标签: c#