我有一堂课
public class A<T> { public static string B(T obj) { return TransformThisObjectToAString(obj); } }
上面字符串的使用纯粹是示例性的。我可以像这样在已知/指定类型上调用静态函数:
string s= A<KnownType>.B(objectOfKnownType);
如果我事先不知道 T ,那么我如何进行此调用,而我有一个 Type类型 的变量来保存该类型。如果我这样做:
Type t= typeof(string); string s= A<t>.B(someStringObject);
我收到此编译器错误:
Cannot implicitly convert type 't' to 'object'
你不能 通用类型标识符必须在编译时知道。
编辑
与其他帖子一样,通过动态生成方法并调用它似乎有可能-当然存在危险。有关更多信息,请参见Thomas和Dathan的帖子。