2014-02-20 58 views
3

我是一個C++程序員誰使切換到C#我當時說,不使用靜態類。 據我瞭解,在C#中,如果類只有靜態成員應該是靜態的。(我的類只有靜態成員) 能否請您給我解釋一下,這可能是使用靜態類的問題嗎? 我們真的應該使用它們嗎?靜態類利弊

由於

+0

正確使用時,「static」類沒有任何問題。對於數據隔離和多線程原因,您需要小心*靜態*(即'static'字段)。因此,它在很大程度上取決於你在做什麼,P你說如果製作使用多線程線程安全 –

回答

1

主要的原因是,有時(但不總是),最好是使用一個單獨的類,因爲一個單獨的類可以實現接口。

1

靜態類沒有非靜態類除了事實,你不能實例化靜態類(因爲它們是靜態的,當然)差異,這種靜態的類將不能夠充分利用涼爽的OOP特性如繼承(它不能在C#中進行子類化)。

如果使用多個線程,你必須要知道,當一個靜態類包含靜態成員的更主要的是使類的靜態成員是線程安全的。

你能解釋一下使用靜態類可能會出現什麼問題嗎?我們真的應該使用它們嗎?

如果您的類只公開靜態成員,那麼您可以將其設爲靜態類,但前提是您確定不需要此類的實例。事實上,在使用靜態類時絕對沒有問題,只需使線程安全(如果需要),並確保它適合您的系統設計。

+0

一切同樣適用於非靜態方法太... –

+0

絕對...除非靜態方法是自載 – Leo