我们经常被告知我们应该通过为类字段创建 getter 和 setter 方法(C# 中的属性)来保护封装,而不是将字段暴露给外部世界。
但是很多时候,一个字段只是用来保存一个值,不需要任何计算来获取或设置。对于这些,我们都会做这个数字:
public class Book
{
private string _title;
public string Title
{
get => _title;
set => _title = value;
}
}
好吧,我有一个坦白,我无法忍受写所有这些(真的,它不必写它,它必须看它),所以我流氓并使用公共领域。
然后是 C# 3.0,我看到他们添加了自动属性:
public class Book
{
public string Title { get; set; }
}
哪个更整洁,我对此表示感谢,但实际上,与仅仅创建一个公共领域有什么不同?
public class Book
{
public string Title;
}