2013-06-29 55 views
2

哪個更好的方式來創建一個對象使用反射?使用反射創建一個對象:Activator.CreateInstance或Inovking的構造函數C#

獲取構造函數的引用並調用構造函數來創建的類的類型使用Activator.CreateInstance對象或

從某種意義上說,更好的是,我們爲什麼會選擇一種方法而不是其他的具體原因?如果是的話在什麼情況下。

我只是在學習反思,並有這個問題。

+2

在這裏定義「更好」:p –

回答

5

他們做同樣的事情。這只是更容易使用Activator.CreateInstance

使用 與指定參數最匹配的構造函數創建指定類型的實例。

實際上,您可以使用Activator,因爲它在內部緩存構造函數實例,因此可以獲得一些性能優勢。如果你在一個循環中創建了很多這樣的代碼,Activator代碼很可能比簡單的手動實現更加優化。

相關問題