字典中的泛型作为方法中的输入

时间:2014-08-18 04:35:15

标签: c#

我正在尝试创建一个接受Dictionary作为输入的方法。

但是,当我尝试添加以下内容时:

 public void WriteToJsonFile(Dictionary<string, T> dicList)
 {
 ... stuff
 }

它将声明T缺少程序集或引用。现在,我通过添加

解决了这个问题
<T>

到类名,所以它将是一个通用类。我是否正确使用Dictionary类,因为我想要的是创建一个接受Dictionary的方法,其中键是一个字符串,但值可以是任何对象?

2 个答案:

答案 0 :(得分:2)

  

我通过在类名中添加<T>来解决这个问题,因此它将是一个通用类。

您不应该这样做,除非您特别需要该类是通用的。

  

我想要的是创建一个接受字典的方法,其中键是字符串,但值可以是任何对象?

然后你只需要一个Dictionary<string,object>:这样,一个字典可以有不同类型的对象,所有对象都用字符串键入。更好的是,您可以使用IDictionary<string,object>让您的类用户通过IDictionary<K,V>接口的其他实现。

答案 1 :(得分:0)

如果您正在制作通用方法,您应该将其标记为通用方法:

    public void WriteToJsonFile<T>(Dictionary<string, T> dicList)
    {

    }

你应该为System.Collections.Generic添加使用;