为什么我要这样做:
public T X { get; set; }
而不是:
public T X;
人们(包括关于SO的一些答案)告诉我“如果你想改变以后的行为怎么办?”这是一个答案,但事实并非如此,因为我可以将public T X;
转换为
public T X {
get { blabla; }
set { blybly; }
}
修改:在发布关于“阅读本文”和“阅读本文”的链接之前,您可以查看链接。其中99%的人主要包含引用其他链接的其他人,实际上没有人给出在字段上使用属性的正当理由。
这是一个流行答案的一个例子:“你可以让setter私有
public T X { get; private set; }
很明显,如果我想要私人制定者,我会创建一个属性。但如果我不这样做,为什么不使用一个领域呢?如果我后来决定要私人制定者,为什么我不能将我的字段从public T X;
更改为public T X {get; private set; }
?
答案 0 :(得分:0)
我能想到的一件事就是这个。
运行它时,您将获得System.MissingFieldException - 因为最初编写的消费者应用程序是为了查找字段而不是get_X方法。
您是否应该以这种方式部署应用程序是另一回事,但如果您是第三方代码提供商并且客户端以这种方式使用您的库,那么它将使其部署的应用程序崩溃。