給出一個泛型類型約束的所有可能的排列:反映了泛型類型約束
class MyClass<T> where T: Alpha
{
}
和約束的實現:
class Alpha {}
class Bravo : Alpha {}
class Charlie : Alpha {}
怎樣才能獲得泛型類型的全部組合中的運行?
// I want these types at run-time
MyClass<Alpha>
MyClass<Bravo>
MyClass<Charlie>
編輯:基於@ rich.okelly的答案,我認爲真正的問題是:
我怎樣才能找到所有實現在運行時我一般類型的約束的類型?
所以如果我給typeof(MyClass<>)
,我會得到上面的類型。
想法,如果你給出的只是'MyClass'類型? –
已更新,因此運行時類型的alpha不是必需的。 –
@AustinSalonen回答現在更新完成解決方案(假設所有必需的程序集已加載)。 –