我有一个通用的功能如下:替代SomeFunction <SomeType.GetType()>(SomeArgument)
public static T Function<T>(Argument arg)
{
//DO FUNCTION STUFF
}
我想用一个I型从FieldInfo.FieldType得到像这样调用这个函数:
Function<someFieldInfo.FieldType>(arg);
但是,这是不允许的。而且也不是:
Function<typeof(SomeType)>(arg);
我很远从C#专家,所以借口,如果这是一个愚蠢的问题。但为什么这不起作用?我怎样才能解决它以获得类似的功能?
您可以使用反射来做到这一点,也可以创建一个接受类型参数的重载。这在整个框架中都很常用。 – silkfire
@silkfire原谅我的愚蠢,但我会怎么做反思? (对此很新颖)。而你的另一种选择。你的意思是做一个重载函数,如:Function(Type type)?我没有重新说明类型究竟是什么以及它为什么不能被写入<>的像你可以 –
带有该签名的函数只是隐藏了一个转换,所以你还可以添加一个重载'public static object函数(类型t,参数arg)'并调用:'Function(someFieldInfo.FieldType,arg)'。 – Lee