我有一個有一些屬性的類。我希望能夠從這些屬性中計算得分。由於這是一項微不足道的任務(有些增加和劃分,但沒有什麼特別的)。將屬性更改爲方法 - 任何副作用?
所以很自然地,問題是:「什麼時候在getter中使用帶有代碼的屬性,何時使用函數?」和that question was already answered。現在,我想知道一件事情:如果 - 反對所有的期望 - 我需要使這個Getter變得如此複雜,以至於它應該是一個函數(例如,因爲我需要將數據放入或因爲它可能拋出一個例外或其他),是否容易將屬性更改爲方法?
當然,它似乎真的微不足道,只是改變
public double Score {
get {
return Math.Round(A + B/C * D,3);
}
}
到
public double Score(){
return Math.Round(A + B/C * D,3);
}
但我不知道:有沒有什麼副作用?在改變這樣的東西時是否會有什麼破壞?當涉及到Reflection時,我只能把它看作是一個可能的問題,但是在我有兩個程序集的情況下 - 一個定義類和一個使用類 - 並且只更改包含該類的程序集而不重新編譯消費者部件。這是否是「幾乎不可能跟蹤的奇怪錯誤」的可能來源,還是將屬性更改爲方法是完全安全的?
謝謝。我只是怕有更多隱藏的黑魔法。接受這個答案,因爲它更精細,但upvoted兩個。 – 2008-11-17 20:30:10