我應該使用哪種場景改變類的方法裏面私有字段/屬性:正確使用的字段被封裝在屬性的類內
public class Example
{
private int intVar = 0;
private string stringVar = string.Empty;
public int IntVar
{
get { return this.intvar; }
set { this.intvar = value; }
}
public string StringVar
{
get { return this.stringVar ; }
set { this.stringVar = value; }
}
private void SomeMethod()
{
//change fields in this way:
this.intVar = 50;
this.stringVar = "changed";
//or that way(through properties):
this.IntVar = 50;
this.StringVar = "changed";
}
}
也許在這個例子中它沒有什麼區別,但如果有人爲屬性添加額外的代碼,並通過屬性更改字段會改變一些其他的東西?
你能說哪種方式更好,或者它沒有什麼區別嗎?我知道自C#3.0以來,我可以編寫自動實現的屬性,但這是C#2.0。
只是一個方面的評論 - 這通常是一個壞主意,只有大寫字母的名稱和屬性不同。常見的約定是命名字段_intVar和_stringVar,並且避免錯誤類型調用錯誤的可能性,或者更糟糕的是,如果你從'IntVar'中'返回IntVar',就會得到StackOverflowException。 – 2012-04-20 09:55:08
+1感謝提示 – adams 2012-04-20 09:59:44
但[根據微軟](http://msdn.microsoft.com/en-us/library/ta31s3bc(v = vs.71).aspx),我們也不應該使用前綴字段名稱。 – Botz3000 2012-04-20 10:03:55