C# 使用泛型类型';System.Collections.Generic.Dictionary<;TKey,TValue>';需要2个类型参数

C# 使用泛型类型';System.Collections.Generic.Dictionary<;TKey,TValue>';需要2个类型参数,c#,dictionary,C#,Dictionary,我使用泛型类型“System.Collections.generic.Dictionary”获得错误,需要使用以下代码行的两个类型参数: this._logfileDict = new Dictionary(); 我只是想在我的代码中有一个没有条目的清晰的logfileDict,所以我给它分配了一个新的字典,它将是空的,但是如果有人知道一些代码,我可以用它来清空logfileDict。它只是一本字典,声明如下: private Dictionary<string, LogFile>

我使用泛型类型“System.Collections.generic.Dictionary”获得错误,需要使用以下代码行的两个类型参数

this._logfileDict = new Dictionary();
我只是想在我的代码中有一个没有条目的清晰的logfileDict,所以我给它分配了一个新的字典,它将是空的,但是如果有人知道一些代码,我可以用它来清空logfileDict。它只是一本字典,声明如下:

private Dictionary<string, LogFile> _logfileDict;
private Dictionary\u logfileDict;

非常感谢您的帮助

出现此错误的原因是,您试图使用需要类型参数的类,而没有不需要泛型类型参数的
字典

当使用使用泛型类型参数的类时,需要在声明或实例化处理该类的变量时提供要使用的类型

替换:

this._logfileDict = new Dictionary();
与:

this._logfileDict=newdictionary();

在.NET Framework中没有没有没有泛型参数的类型
字典。在实例化
字典
的实例时,必须明确说明类型参数。在您的情况下,
\u logfileDict
被声明为
字典
,因此您必须在分配新实例时明确说明这一点。因此,必须为
\u logfileDict
分配一个新实例,从而:

this._logfileDict = new Dictionary<string, LogFile>();
this._logfileDict=newdictionary();

(但是,请注意,如果您不想指定键和值的类型,.NET Framework中有一个
System.Collections.Hashtable

您需要指定两种类型:

this._logfileDict = new Dictionary<string, LogFile>();
this._logfileDict=newdictionary();
试试这个

 this._logfileDict = new Dictionary<string, LogFile>(); 
this._logfileDict=newdictionary();

有关字典和如何初始化的内容值得一读,请了解有关字典的更多信息…

而且您知道字典中的构造函数要求键入键和键入值,这就是您遇到的错误

因为日志文件字典def的类型是字符串,并且日志文件的类型肯定比构造函数的类型要多

this._logfileDict = new Dictionary<string, LogFile>(); 
this._logfileDict=newdictionary();
这是一个空的(如您定义的那样清晰)dicitonary,但它需要初始化此定义,以便在您向其输入内容时,它可以键入check


希望这有帮助

答案有点短,但仍然正确:)@jv42同意,我已更新了答案以包含更多信息和参考。噢,很好,这现在是一个非常好的答案:)IntelliSense应该在键入“=new”后为您指出正确的方向……答案在错误消息中。
this._logfileDict = new Dictionary<string, LogFile>();