指定返回类型
本文关键字:返回类型 | 更新日期: 2023-09-27 18:16:48
我有伪代码
T foo<T>(string bar)
{
if (typeof(T) == typeof(string))
{
return bar;
}
...
虽然代码真的没有多大意义,有可能得到类似于上面的工作吗?
我试过return (T)bar
和return bar as T
,但都无济于事。
编辑:抱歉,伪代码已更正
你可以这样做:
T foo<T>(string bar)
{
if (typeof(T) == typeof(string))
{
return (T)(object)bar;
}
...
但是如果你根据T的类型做一些不同的事情,你可能应该重新考虑你的设计…也许泛型不是您想要做的事情的最佳选择。
您的伪方法是void
,所以它不期望返回值
你试过正确地测试这种类型吗例如
if (T.GetType().Equals(typeof(String))) {}
还有什么是你真正想做的…?你熟悉如何使用泛型吗?
您必须指定返回类型-不是void
T foo<T>(string bar){
if (typeof(T) == typeof(string)){
return (T)(object)bar;
}
}
但是这没有任何意义——你为什么要这样做?通常,您的签名看起来像这样:
void foo<T>(T bar){
if (typeof(T) == typeof(string)){
// do something useful with bar
}
}
…在上面的示例中,修改void
,使其返回的结果,即。