2012-05-24 23 views
0

如果我有一個包含許多擴展方法的類,我是否應該擔心「使用」它的開銷,如果我只使用其中一種擴展方法?
如果是這樣的話,我應該把所有的擴展方法放在他們自己的類中嗎?或者也許有辦法「使用」一個擴展方法? (例如,如:using StringMethods.RecursiveJoin;?)使用單個擴展方法浪費開銷嗎?

+2

您已標記此[優化] - 更準確的標籤應該是[過早優化]。 – Jamiec

+2

你擔心什麼開銷?編譯成本可以忽略不計,並且幾乎沒有運行時成本。 –

+0

@馬塞洛:那是我的問題,不是嗎?我問 - 我應該擔心。這取決於你告訴我什麼是開銷,如果有的話! :) –

回答

3

它可能會稍微增加編譯時間非常非常非常。而且根本沒有運行時間開銷。所以沒有理由擔心從性能的角度來看。

我唯一擔心的是設計是否好。是否所有這些方法都是擴展方法,或者它們中的一些更適合常規的靜態方法甚至實例方法?但是如果不知道你的擴展方法是做什麼的,那麼這個問題就不能得到回答

0

不是很確定什麼是確切點的「開銷」,但如果你想「導入」一種方法,這是不可能的。 可以做的是將該方法移動/複製到另一個類中,該類只使用你,如果它會給代碼更「本地化」的感覺(很難在不看到所有項目的情況下去除)。

這將是代碼佈局架構的改進,如果會,但不是內存或性能。