微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在运行时设置通用类型

我有一个
public class A<T>
{
   public static string B(T obj)
   {
       return TransformThisObjectToAString(obj);
   }
}

上面使用的字符串是纯粹的例子.我可以像已知/指定的类型一样调用像这样的静态函数

string s= A<KNownType>.B(objectOfKNownType);

如果我不知道T,我该如何进行此调用,而是具有类型类型的变量.如果我这样做:

Type t= typeof(string);
string s= A<t>.B(someStringObject);

我得到这个编译错误

Cannot implicitly convert type 't' to 'object'

解决方法

你不行编译时必须知道通用类型标识符.

编辑

作为其他职位,似乎有可能通过动态生成方法调用它 – 当然有危险.看到托马斯和达森的职位更多的信息.

原文地址:https://www.jb51.cc/csharp/94902.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐