2017-10-16 31 views
-2

在Java getter和setter方法不同的工作是這樣的:C# - getter/setter方法從其他語言

public string GetPersonName() { 
    return this.PersonName; 
} 

在C#中也可以相同的方式工作,但事情是我看到人們在使用這個語法

public string PersonName { get; set; } 

希望有人會澄清,對我來說,謝謝!

+0

這就是C#爲getter/setter屬性引入的語法。和Java一樣,你不必爲每個getter和setter創建方法。 – shahsani

+0

但是,這是從我所知道的Java中獲得getter和setter的唯一方法,對吧? @shahsani – Dea

+0

是的,這是Java的唯一方法。而C#使用這種方式可以輕鬆讀取/實現getters/setters! – shahsani

回答

3
public string PersonName { get; set; } 

實際上相當於

private string personName; 

public string PersonName 
{ 
    get { return personName; } 
    set { personName = value; } 
} 

自動實現的屬性介紹了C#3.0中,使代碼更易讀/簡潔。

+0

當我想要將邏輯插入到setter中時,我必須使用第二種語法,是嗎? – Dea

+0

@Dea - 是的,這是正確的。如果你需要添加邏輯,你可以使用第二種語法。 – Enigmativity

+0

正確。當您的分配或檢索邏輯發生變化時,您必須使用第二種語法。 – Shinva