我維護別人的代碼,他們有這個節的方法:對Activator.CreateInstance進行此調用的任何原因?
object ReportCriteriaInstance =
Activator.CreateInstance(
typeof(MyCompany.Utils.ReportStructure.ReportSearchCriteria));
//ReportCriteria is passed in as a method parameter
ReportCriteriaInstance = ReportCriteria;
我不知道爲什麼他們正在與CreateInstance()
實例之後設置ReportCriteriaInstace
爲不同的值一行。
除此之外, ,因爲我們正在傳遞一個已知類型爲CreateInstance
(MyCompany.Utils.ReportStructure.ReportSearchCriteria
)是否有任何理由不使用new()來代替?一些默認的,無參數的構造函數原因我沒有得到可能嗎?
我能想到的唯一理由是,如果組件動態加載,因此你沒有名字在編譯時。 – kenny
在該行之前放置一個//並繼續您的生活。有一天你可能會找出原因。 –
@Hans Passant:直到證明 –