c# – 我知道typeof(T),但是编译器没有.怎么修?

前端之家收集整理的这篇文章主要介绍了c# – 我知道typeof(T),但是编译器没有.怎么修?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个这样的方法
public static T Test<T>()
{
  if (typeof(T)==typeof(string))
     return "1241";

  // do something else
}

但我似乎无法弄清楚如何把它拉下来.我想根据该方法调用的T类型返回值.我需要返回字符串,int,定制类,列表等.

实际的用例是一些自定义的序列化代码,其中反序列化代码知道应该产生的对象的类型是至关重要的.

澄清:
上面的示例给出以下错误
无法将字符串转换为T型

理想的解决方案将适用于值类型和引用类型,不会包含用于重载解析的虚拟参数.

我开始怀疑这种理想的解决方案是否存在.

谢谢卢卡斯

解决方法

对象的中间转换不是很理想,但是这样的事情应该是诀窍:
public static T Test<T>()
{
    if (typeof(T) == typeof(string))
        return (T)(object)"1241";

    // do something else
}

猜你在找的C#相关文章