小编lor*_*lko的帖子

为什么Visual Studio为C#6插值字符串创建双重括号?

在Visual Studio 2015中,当我通过键入一个左大括号'{'来在变量中编写插值字符串时,实现以下内容:

var a = $"{}";
Run Code Online (Sandbox Code Playgroud)

第二个结束括号自动插入,红色或粉红色,如此

var a = $"{}}"
Run Code Online (Sandbox Code Playgroud)

在括号'{}'中插入变量并尝试编译之后,Visual Studio会抛出一个错误:"CS8086:A'}'字符必须在插值字符串中进行转义(通过加倍)." 这是有道理的,但根本没有解释为什么第二个'}'出现在第一位!我不想写一个'}'字面字符; 我只想写一个常规插值字符串 - 一个'}'用于一个'{'.每次我使用插值字符串时,我都被迫手动删除这个异常的第二个右括号,以便成功编译.

最奇怪的是,它似乎并不是一直发生的.如果您从插值字符串中删除"{}}"并再次键入单个"{",则最终会得到"{}" - 就像您在第一时所期望的那样.

这种行为怎么了?

c# visual-studio-2015

7
推荐指数
1
解决办法
578
查看次数

标签 统计

c# ×1

visual-studio-2015 ×1