想象一下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