我可能已经完全失明了,但我看不出这段代码有什么问题:
public static Dictionary<States, string> NameMap = new Dictionary<States, string>
{
[States.State1] = "State1",
[States.State2] = "State2",
[States.State3] = "State3",
[States.State4] = "State4",
[States.State5] = "State5",
[States.State6] = "State6"
};
在尝试构建时,我得到了这些错误的语气:
Invalid expression term '['
(这指向每行的第一个支架)
和
Syntax error, ',' expected
这指向*栏:
[States*.State1]* = "State1",
非常感谢任何帮助。在via .Add中填充这些值可以正常工作。
各州是恩赐顺便说一句。
答案 0 :(得分:4)
问题是由Resharper引起的,只是假设我使用的是C#6编译器并且正在纠正&#39;我的代码相应。经过检查,我没有使用C#6,而且Resharper很幸运我没有删除它
答案 1 :(得分:2)
您的语法是对的!
您可以在此处进行测试:http://www.volatileread.com/utilitylibrary/snippetcompiler?id=69450
这称为索引初始值设定项
对象和集合初始值设定项对声明性有用 初始化对象的字段和属性,或给出集合 一组初始元素。初始化词典和其他 具有索引器的对象不太优雅。我们正在添加一个新语法 对象初始值设定项允许您通过任何设置键的值 新对象具有的索引器
var numbers = new Dictionary<int, string> {
[7] = "seven",
[9] = "nine",
[13] = "thirteen"
};
来源:https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6