2013-04-18 23 views
1

我曾多次撰文指出,像這樣一個C#屬性:如何在分配屬性時自動處理數據?

private string _Id; 
public string Id 
{ 
    get 
    { 
     return _Id; 
    } 
    set 
    { 
     _Id = value.Trim(); 
    } 
} 

上面的代碼中聲明瞭一個名爲ID的字符串屬性,使之以使Trim擴展方法是在傳遞到值自動調用二傳手。如果沒有Trim邏輯,我可以簡單地寫:

public string Id {get; set;} 

好像我已經寫了很多的代碼來完成簡單的東西。

有沒有更好的方法?

回答

5

有沒有更好的方法?

那麼你可以把它看起來像更少的代碼(和雜亂的東西了讀書時少):

private string _Id; 
public string Id 
{ 
    get { return _Id; } 
    set { _Id = value.Trim(); } 
} 

甚至把整個財產本身一行:

private string _Id; 
public string Id { get { return _Id; } set { _Id = value.Trim(); } } 

但是不,你不能做一個自動實現的屬性做任何事情不僅僅是獲取/設置爲私有變量。

說實話,這真的不是那麼多代碼 - 這是語法相當數量的,但你只是要聲明一個變量並編寫兩種說法。我不認爲這真的太難問了。

+0

您是否打算在第二個代碼示例中沒有明確聲明支持字段? –

+0

@DanielAllenLangdon:我只是試圖顯示屬性部分本身的語法上的差異。是的,你需要這個領域。我將編輯以顯示該字段。 –