我想编写一个这样的方法:
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 }