在Java getter和setter方法不同的工作是這樣的:C# - getter/setter方法從其他語言
public string GetPersonName() {
return this.PersonName;
}
在C#中也可以相同的方式工作,但事情是我看到人們在使用這個語法
public string PersonName { get; set; }
希望有人會澄清,對我來說,謝謝!
在Java getter和setter方法不同的工作是這樣的:C# - getter/setter方法從其他語言
public string GetPersonName() {
return this.PersonName;
}
在C#中也可以相同的方式工作,但事情是我看到人們在使用這個語法
public string PersonName { get; set; }
希望有人會澄清,對我來說,謝謝!
public string PersonName { get; set; }
實際上相當於
private string personName;
public string PersonName
{
get { return personName; }
set { personName = value; }
}
自動實現的屬性介紹了C#3.0中,使代碼更易讀/簡潔。
當我想要將邏輯插入到setter中時,我必須使用第二種語法,是嗎? – Dea
@Dea - 是的,這是正確的。如果你需要添加邏輯,你可以使用第二種語法。 – Enigmativity
正確。當您的分配或檢索邏輯發生變化時,您必須使用第二種語法。 – Shinva
Java沒有「真實」屬性。 GetPersonName是一個方法而不是「屬性」。
如果成員表示該類型的邏輯屬性,則考慮使用屬性。 永遠不要使用屬性進行長時間運行!
你也應該閱讀這篇文章屬性在C#https://msdn.microsoft.com/en-us/library/ms229054(v=vs.100).aspx
這只是少打字一種簡化的方式。這就是所謂的auto-implemented-properties
這就是C#爲getter/setter屬性引入的語法。和Java一樣,你不必爲每個getter和setter創建方法。 – shahsani
但是,這是從我所知道的Java中獲得getter和setter的唯一方法,對吧? @shahsani – Dea
是的,這是Java的唯一方法。而C#使用這種方式可以輕鬆讀取/實現getters/setters! – shahsani