2

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

public class Setting<T>
{
    ...
}

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

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

哪里设置字典是

 private Dictionary<string, object> settingDictionary;

我得到错误:

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

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

4

3 回答 3

3

您需要使方法通用:

 public Setting<T> GetSetting<T>(string setting)
 {
   // ... Your code...
于 2013-01-23T17:20:33.943 回答
1

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

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

 }

这是一个DEMO.

于 2013-01-23T17:21:11.057 回答
0

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

public Setting<T> getSetting<T>(string setting)
于 2013-01-23T17:22:34.387 回答