我收到错误使用泛型类型'System.Collections.Generic.Dictionary< TKey,TValue>'这行代码需要2个类型参数:
this._logfileDict = new Dictionary();
我只是想在我的代码中创建一个没有条目的清晰的_logfileDict,这就是为什么我为它分配一个新的Dictionary,它将是空的,但是如果有人知道我可以使用的一些代码只是为空否则_logfileDict。它只是一个字典声明如下:
private Dictionary<string, LogFile> _logfileDict;
非常感谢任何帮助!
答案 0 :(得分:12)
您收到此错误的原因是您尝试使用需要Dictionary<TKey, TValue>
类型参数的generic类,并且没有Dictionary
类不需要泛型类型参数。
当使用使用泛型类型参数的类时,只要声明或实例化处理类的变量,就需要提供要使用的类型。
替换:
this._logfileDict = new Dictionary();
使用:
this._logfileDict = new Dictionary<string, LogFile>();
答案 1 :(得分:6)
.NET Framework中没有没有通用参数的类型Dictionary
。您必须在实例化时明确声明类型参数和Dictionary<TKey, TValue>
的实例。在您的情况下,_logfileDict
被声明为Dictionary<string, LogFile>
,因此您必须在分配新实例时明确说明这一点。因此,您必须为_logfileDict
分配一个新实例:
this._logfileDict = new Dictionary<string, LogFile>();
(但是,请注意,如果您不想指定键和值的类型,.NET Framework中有System.Collections.Hashtable
。)
答案 2 :(得分:2)
您需要指定两种类型:
this._logfileDict = new Dictionary<string, LogFile>();
答案 3 :(得分:2)
试试这个..
this._logfileDict = new Dictionary<string, LogFile>();
值得阅读关于词典和如何初始化,请go through this link了解有关词典的更多信息......
答案 4 :(得分:1)
你知道你的词典中的构造函数需要你的键的类型和你的值的类型,这就是你得到的错误。
因为您的日志文件字典def具有字符串类型和Logfile类型,所以构造函数肯定是
this._logfileDict = new Dictionary<string, LogFile>();
这是一个空的(如你所定义的那样清晰)dicitonary但它需要这个定义才能初始化,所以当你输入东西时,它可以输入检查
希望这有帮助