的區別是什麼,如果有的話,(重複)'public int x'之間的區別和'public int x {get;組; }
和public int x { get; set; }
之間
public int x;
?
的區別是什麼,如果有的話,(重複)'public int x'之間的區別和'public int x {get;組; }
和public int x { get; set; }
之間
public int x;
?
第一個被稱爲字段。第二個是財產,在這種情況下,自動執行的財產。
屬性的作用類似於字段,但使用getter和setter函數來檢索和設置值。寫入上述屬性的另一種方式如下:
private int _x;
public int X
{
get
{
return _x;
}
set
{
_x = value;
}
}
在這種情況下,可變_x
稱爲支持字段。使用自動實現的屬性,您無法訪問後臺字段或自定義getter/setter中的代碼,但如果不需要,則不會比簡短和簡潔。
作爲C#中的一個規則,大多數時候任何公共成員都應該暴露爲屬性而不是字段。
第一個是公共變量,可以從任何地方訪問。
第二個是公共財產
檢查屬性tutorial瞭解詳情。
屬性有很多用途:它們可以在允許更改 之前驗證數據;他們可以透明地公開某個類的數據,其中該數據實際上是從其他某個源(如數據庫)中檢索的;他們 可以在數據發生變化時採取行動,例如引發事件,或者 更改其他字段的值。
這兩者之間的區別是,一個屬性可以做些事情更多不只是獲取/設置變量。
藉此例如:
private int _x;
public int x
{
get
{
//do something
return _x;
}
set
{
if(_x != value)
PropertyChanged("x");
_X = value;
}
}
,當我們設置屬性 - 我們通知的東西(PropertyChanged()
),該值已更改。這將是很難做的只是領域
是的,但給定了確切的代碼,沒有任何附加的功能,如事件或值檢查,是否有任何實際的區別?換句話說,爲什麼在公共屬性後鍵入{get set}如果你所做的都是直接獲取X的值? – Kokodoko
我從來沒有輸入'get;組;' :-)我輸入'prop'並按Tab鍵。而且,如果我以後需要添加功能性,那麼我就準備好了。 –
第一個是公共變量,而第二個是公共財產。 –
如果只有一個網站,您可以搜索這樣的東西,如 我不知道,谷歌? https://www.google.co.il/search?q=difference+between+properties+and+variables+c%23&oq=difference+between+properties+and+variabl&aqs=chrome.2.69i57j0l5.11837j0j8&sourceid=chrome&espv=210&es_sm = 122&ie = UTF-8#es_sm = 122&espv = 210&q =屬性+ vs +變量+ c%23 –
在這種情況下,他對谷歌沒有任何東西。他不知道這是一個「財產」。因此,他究竟能夠在Google搜索中投入什麼?我認爲這是一個公平的問題... –