想象一下Func Func<Arguments, bool?>
,其中Arguments
是一個抽象類。某處,出於某種原因,我創建了這些函數的列表,並將所有派生類作爲參數。當然,在調用Func
之前,Arguments
的類型對驗證很重要。有沒有辦法獲得Arguments
的類型?C#Func <T,TResult>參數驗證
例如爲:
public bool? test(Arguments arg) {
Func test = Func<SomeArguments, bool?>;
Type argType = GetFirstArgumentType(test); // gives SomeArguments.GetType();
if (arg.GetType() == argType) {
return test(new SomeArguments());
}
return null;
}
而不是它們的列表,將它們存儲在'Dictionary>'中。如果您計劃重複,則可能需要將其作爲關鍵值對的列表。 –
Magus
你想知道如何實現'GetFirstArgumentType'嗎? –
您是否在尋找類似[[如何從其父接口獲取實際類型的派生類]](http://stackoverflow.com/q/2520694/2145211),它也適用於派生類? – Harrison