gpt4 book ai didi

c# - 为什么 Visual Studio 为 C#6 内插字符串创建双右括号?

转载 作者:太空狗 更新时间:2023-10-29 20:20:00 26 4
gpt4 key购买 nike

在 Visual Studio 2015 中,当我通过键入左大括号“{”在变量中写入内插字符串时,实现了以下目的:

var a = $"{}";

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

var a = $"{}}"

在括号“{}”内插入一个变量并尝试编译后,Visual Studio 抛出错误:“CS8086:在内插字符串中必须转义(通过加倍)字符”。这是有道理的,但根本不能解释为什么第二个 '}' 出现在第一位!我不想写一个 '}' 字面字符;我只是想写一个常规的内插字符串——一个“}”代表一个“{”。每次我使用内插字符串时,我都不得不手动删除这个异常的第二个右括号才能成功编译。

最奇怪的是,它似乎并不总是发生。如果您从内插字符串中删除“{}}”并再次键入单个“{”,您将以“{}”结束 - 正如您最初所期望的那样。

这种行为是怎么回事?

最佳答案

这是由 Resharper 引起的。

你可以通过去证明这一点

工具 |选项 |锐化 |一般 |立即暂停

然后再试一次。多余的 } 不会出现。 (我尝试使用 R# 10.0)

我一直在通过在 R# 插入额外的 } 后按 ^Z 来解决这个问题,但它仍然有点烦人。

我想这应该作为 R# 站点上的错误报告(除非它已经在最近的版本中得到修复)。

[编辑] 我已将其报告为 the Resharper forums 上的错误.一旦 mods 批准,我的错误报告应该会出现在那里。

关于c# - 为什么 Visual Studio 为 C#6 内插字符串创建双右括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33971133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com