c# - 指定返回类型

标签 c# generics

我有伪代码

T foo<T>(string bar) 
{
 if (typeof(T) == typeof(string))
 {
   return bar;
 }
...

虽然代码并没有多大意义,但是否有可能得到类似于上面的东西?

我试过 return (T)barreturn bar as T 都没有用。

编辑:抱歉,已更正伪代码。

最佳答案

你可以这样做:

T foo<T>(string bar) 
{
 if (typeof(T) == typeof(string))
 {
   return (T)(object)bar;
 }
...

但是如果你根据 T 的类型做不同的事情,你可能应该重新考虑你的设计......也许泛型不是你想要做的事情的最佳选择。

关于c# - 指定返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8358350/

相关文章:

java - 为什么 UnaryFunction<Object> 可以转换为 UnaryFunction<T>?

java - 如何对泛型类型列表进行 instanceof 检查?

c# - 调试失败的 HTTPS WebRequest

c# - 如何格式化 DateTime 结构,使其与 DataContractJsonSerializer 使用的格式相匹配?

c# - 如何制作脚本/程序以使应用程序始终运行?

c# - 我如何知道我的 MVC Controller 操作在哪个区域被调用?

c# - 将文件添加到 Flurl 多部分 POST 请求时 IFormFileCollection 为空

java - 如何将数组传递给由 Comparable 接口(interface)限制的类型参数

java - 为什么 Java 不提示模棱两可的调用?

java - java函数声明中<T, U extends T>的含义