泛型类作为返回类型

本文关键字:返回类型 泛型类 | 更新日期: 2023-09-27 17:55:20

我有一个使用泛型来保存不同值的存储类。

public class Setting<T>
{
    ...
}

在另一个类中,我想制作一个类似

  public Setting<T> getSetting(string setting)
  {
        return (Setting<T>)settingDictionary[setting];
  }

其中设置字典是

 private Dictionary<string, object> settingDictionary;

我收到错误:

找不到类型或命名空间名称"T"(您是否缺少 使用指令或程序集引用?

有没有办法解决这个问题?谢谢

泛型类作为返回类型

您需要使该方法通用:

 public Setting<T> GetSetting<T>(string setting)
 {
   // ... Your code...

你的Setting<T>类没有实现Dictionary<string, object>所以你应该让你的方法generic typeGetSetting<T>

public Setting<T> GetSetting<T>(string setting)
 {
 }

这是一个DEMO.

好吧,编译器不知道" T "是什么,您可以在方法上将其定义为泛型,如下所示:

public Setting<T> getSetting<T>(string setting)