"{get; set;}"、"{get; private set;}" 和 "{get;}" 有什么区别?

4

我刚开始学习C#,但在别人写的一些早期代码中我看到了{get; set;}{get; private set;}以及{get;}这些字眼。

这到底是什么意思? 在{get; set;}{get; private set;}以及{get;}之间有什么区别?


这个回答解决了你的问题吗?在C#中使用私有属性有什么理由吗? - undefined
1个回答

22

当你写作时

public int MyProperty {get; set;}

在这种情况下,MyPropertypublic 的,因此 getter 和 setter 都可以访问它。当你写:

public int MyProperty {get; private set;}

只有getter方法保留为public,而setter方法则变成了private。这种方法用于创建只能在类内部写入的属性。

C#的新版本提供了一个与此密切相关的结构。

public int MyProperty {get;}

它允许您使属性成为只读。这与{get;private set;}类似,但它还限制了对MyProperty的所有赋值,仅限于其包含类的构造函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接