我使用Type.GetConstructor(Type.EmptyTypes)
來獲取類的默認構造函數。如果該類具有不帶參數的默認構造函數(class A
),它將起作用。但是,如果一個類具有一個構造函數,並且所有參數都是可選的(class B
),則它不起作用。程序不知道可選參數是什麼,因爲它只需要默認的構造函數。我可以使用哪些語句使其適用於這兩種情況?謝謝,感謝任何幫助!如何在參數可選時獲取默認構造函數
public class A
{
public A() {}
}
public class B
{
public B(int i = 0, string str = "") {}
}
感謝所有的答覆,他們非常豐富。由於這些是自動生成的類,我只是將其更改爲始終包含不帶參數的構造函數。 – dlsou 2011-04-08 12:14:15
另請注意,如果'T'具有約束條件'where T:new()',那麼類'B'不能用於泛型類型參數'T'。公共實例構造函數不被視爲無參數,因爲它的所有參數都是可選的。 – 2014-02-27 08:01:37