這個問題是相關但不一樣的是:How do you give a C# Auto-Property a default value?在C#中,我可以讓自動屬性在屬性的幫助下執行一些額外的工作嗎?
我愛自動性,但有時我不得不做這樣的事情:
private string someName;
public string SomeName
{
get
{
return someName;
}
set
{
someName = value.Trim();
}
}
如果我必須做同樣的事情很多次,我開始希望我不需要輸入太多的代碼行/字符。我希望能夠攔截這個值並改變它的排列方式:
public string Somename
{
get;
[Trim]
set;
}
有沒有辦法做這樣的事情?它會愚蠢嗎?有沒有更好的辦法?任何其他一般性評論?我承認,我給出的例子有點假設,我現在找不到確切的代碼,這讓我想到了這一點。
謝謝。
感謝,並微軟沒有提供它自己的面向方面編程的解決方案? – 2010-06-03 22:40:07
在一定程度上,它的ContextBound對象,但它不是一個很好的解決方案,大多數AOP實現。現在IL織工在這方面的表現要好得多,並且可以與任何類型的對象一起工作,而使用Microsoft方法則必須從普通類繼承。 – 2010-06-03 22:45:12
等一下,「IL織布工」是將句法糖擴展成不同代碼的東西?是否類似'使用<=> try/finally',代碼契約魔法?我認爲在一個IL編織器中的一個bug會有點難以追蹤,因爲它可能會讓調試器混淆。 – 2010-06-03 22:53:35