【发布时间】:2014-10-30 04:44:24
【问题描述】:
第一种解决方案比第二种解决方案有什么优势?
class TestClass
{
public int value
{
get;
set;
}
}
static void Main()
{
var myTest = new TestClass();
myTest.value = 3;
System.Console.WriteLine(myTest.value);
}
}
对
class TestClass
{
public int value;
}
static void Main()
{
var myTest = new TestClass();
myTest.value = 3;
System.Console.WriteLine(myTest.value);
}
我已经在 SO 上搜索了这个问题,但我一直看到的最重要的答案是,如果您需要更改设置/获取方式(添加验证或其他内容),则无需返回您的代码并将其添加到使用该属性的任何地方。如果您确实需要添加此验证,难道您不能将其从示例二更改为示例一而不进行任何其他更改吗?我的理解是,即使您想向 get/set 添加一些验证,您也不能像我的示例中那样使用自动生成的方式,并且无论如何都需要更改它。如果是这样的话,为什么还要get/set?
【问题讨论】:
-
这个问题的答案遍布整个互联网和大多数面向对象的编程书籍。
-
@rufanov 我想指出我句子中的关键字:
most,这意味着不是全部。