我们经常被告知,应该通过为类字段创建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;
}