使用泛型类型'System.Collections.Generic.Dictionary

本文关键字:Dictionary Generic TKey TValue Collections System 泛型类型 | 更新日期: 2023-09-27 18:14:44

我得到错误使用泛型类型'System.Collections.Generic.Dictionary<TKey,>'需要两个类型参数,这行代码:

this._logfileDict = new Dictionary();

我只是想在我的代码中有一个明确的_logfileDict,没有条目,所以这就是为什么我给它分配一个新的字典,这将是空的,但如果有人知道一些代码,我可以用它来清空_logfileDict。它只是一个字典,声明如下:

private Dictionary<string, LogFile> _logfileDict;

任何帮助都非常感谢!

使用泛型类型'System.Collections.Generic.Dictionary<TKey TValue

您得到此错误的原因是因为您试图使用需要泛型类型参数的Dictionary<TKey, TValue>类,并且没有不需要泛型类型参数的Dictionary类。

当使用使用泛型类型参数的类时,无论何时声明或实例化处理该类的变量,都需要提供想要使用的类型。

替换:

this._logfileDict = new Dictionary();

:

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

在。net框架中没有没有泛型参数的类型Dictionary。在实例化Dictionary<TKey, TValue>的实例时,必须显式地声明类型参数。在您的示例中,_logfileDict被声明为Dictionary<string, LogFile>,因此在分配它的新实例时必须显式地声明这一点。因此,您必须这样为_logfileDict分配一个新实例:

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

(注意,如果你不想指定键和值的类型,. net框架中有一个System.Collections.Hashtable)

您需要指定两种类型:

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

try this .

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

关于字典和如何初始化值得一读,请通过这个链接了解更多关于字典的信息…

正如你所知,字典中的构造函数需要键的类型和值的类型,所以这就是你得到的错误。

因为你的logfile字典def有字符串类型和logfile类型所以构造函数肯定是

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

这是一个空的(如你所定义的那样清晰)字典,但是它需要初始化这个定义,这样当你输入内容时,它可以输入check

希望能有所帮助