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

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

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

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

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

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

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

谢谢卢卡斯

解决方法

对象的中间转换不是很理想,但是这样的事情应该是诀窍:
  1. public static T Test<T>()
  2. {
  3. if (typeof(T) == typeof(string))
  4. return (T)(object)"1241";
  5.  
  6. // do something else
  7. }

猜你在找的C#相关文章