可能重複:
Difference between Property and Field in C#代碼比較 - 哪個更好或不需要?
public class Test
{
public bool testData1;
public string testData2;
}
或
public class Test
{
public bool TestData1 { get; set; }
public string TestData2 { get; set; }
}
或
public class Test
{
private bool testData1;
private string testData2;
public bool TestData1 { get { return testData1; } set { testData1 = value; } }
public string TestData2 { get { return testData2; } set { testData2 = value; } }
}
哪些優化代碼更好或不必要?爲什麼?
是不是最後一個擁有很多不必要的數據?
=======編輯:
我認爲在這種情況下:
public class Test
{
public Test(bool testData1)
{
this.testData1 = testData1;
}
private bool testData1;
public bool TestData1 { get { return testData1; } }
public string TestData2 { get; set; }
}
在後臺有場是必需的。不是嗎?
還有一點:(2)是更簡潔 - 和,從而,典型地優選的 - 超過(3)。例外存在,主要的一點是,當你想爲初始值分配給支持字段,你不能這樣做,雖然(2)。 – Douglas 2012-02-05 20:13:30
@Douglas不只是初始值,但也有一些邏輯,也就是說,只有在某些條件下才會有一個值。 – 2012-02-05 20:15:15
公共字段在常量時可以使用,例如['Math.PI'](http://msdn.microsoft.com/zh-cn/library/system.math.pi.aspx)。 – 2012-02-05 20:15:26