Initializing dictionary in c# 3.0
以下集合初始化出现问题:
1 2 3 4 5 6 | private Dictionary<string, string> mydictionary = new Dictionary<string, string>() { {"key","value"} , {"key2","value2"} , {"key3","value3"} }; |
我不断地得到关于语法的各种编译器错误。根据我在谷歌上搜索的内容,这应该是完全有效的C 3.0代码。
弹出的第一个错误是:
1 | Error 102 ; expecte |
我做错什么了?
更新它一直告诉我它期望的
我正试图在静态类中创建这个。如果我把这个去掉,一切都会编译好的。
我的结论是:您的目标是框架2.0,否则就不可能得到那个错误。
你101%确定你在使用框架3.0吗?
编辑
1 - On the Project (Solution Explorer), right click on ProjectName and go to Properties.
2 - Check on the Application tab the item"Target Framework"
If says 2.0 change it to 3.0 and do the same for all the projects on the solution.
< /块引用>
您是否将其设置为属性/字段?你用private标记了它?
1
2
3
4
5
6 Dictionary<string, string> temp = new Dictionary<string, string>()
{
{"key","value" },
{"key1","value" },
{"key2","value2" }
};这是一个名为temp的局部变量字典
1
2
3
4
5
6 private Dictionary<string, string> _fieldDictionary = new Dictionary<string, string>()
{
{"key","value" },
{"key1","value" },
{"key2","value2" }
};这是本地成员。
这两个编译程序,是否还有更多的代码要遗漏?
我只需要开一个新的班级,慢慢地把它放在字段、属性等中。直到你发现错误。当我使用vs 2008时,您提供的代码是完全合法的。如果您缓慢地重新创建类,它可能会显示您的错误实际上在哪里。
查找该行上方的任何潜在错误;我将您的代码复制到了Visual Studio中的一个新项目中,并且在编译该项目时没有任何错误。你把这本词典定义为什么的一部分?
如果只声明字典,然后添加键/值对,该怎么办?
1
2
3
4 Dictionary<string, string> temp = new Dictionary<string, string>();
temp.Add("key","value");
temp.Add("key1","value1");
temp.Add("key2","value2");
I think you need to get rid of the().(corrected by david basarab.谢谢戴维!本页显示了一些很好的示例:http://www.codeguru.com/csharp/csharp/cs_misc/designtechnologies/article.php/c1987
编辑
好吧,所以我最终推出了VS2008,我自己也不得不尝试一下。
我将op的代码直接粘贴到一个winforms项目中,就在"public form1()"方法中,然后点击build按钮,它就不会编译了。
删除"private"关键字,它编译得很好。
(我尝试使用public、internal等,但它们都不能编译…)