在Visual Studio 2015中,当我通过键入一个左大括号'{'来在变量中编写插值字符串时,实现以下内容:
var a = $"{}";
Run Code Online (Sandbox Code Playgroud)
第二个结束括号自动插入,红色或粉红色,如此
var a = $"{}}"
Run Code Online (Sandbox Code Playgroud)
在括号'{}'中插入变量并尝试编译之后,Visual Studio会抛出一个错误:"CS8086:A'}'字符必须在插值字符串中进行转义(通过加倍)." 这是有道理的,但根本没有解释为什么第二个'}'出现在第一位!我不想写一个'}'字面字符; 我只想写一个常规插值字符串 - 一个'}'用于一个'{'.每次我使用插值字符串时,我都被迫手动删除这个异常的第二个右括号,以便成功编译.
最奇怪的是,它似乎并不是一直发生的.如果您从插值字符串中删除"{}}"并再次键入单个"{",则最终会得到"{}" - 就像您在第一时所期望的那样.
这种行为怎么了?