这可能是一个初学者的问题,但令人惊讶的是,谷歌并没有提供答案。
我有一个相对简单的方法。
我有一个相对简单的方法。
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
作为一个有C++背景的人,我本以为这会起作用。但是,上述两个赋值语句都无法编译通过,报出了“无法将类型‘T’隐式转换为字符串”和“无法将类型‘T’转换为字符串”的错误。
我可能在概念上做错了什么,或者只是语法有误。请帮助我解决这个问题。
谢谢!
typeof(T) == typeof(string)
是在运行时而不是编译时解析的。因此,块中的以下行是无效的。 - Steve Guidi