如何在片段中转义字符串插值

How to escape string interpolation in snippet

字符串插值很棒,片段也很棒,但它们不能很好地结合在一起。我有一个(部分)看起来像这样的片段:

job.Location = $"{e["$locationfield$"]}";
return true;

locationfield 部分应该是替代品,但当然会看到 '"{e[" 是替代品。因此,当您尝试使用该代码段时,该部分被搞砸了:

job.Location = locationfield

下面的其余代码都不见了(因为它无法匹配另一个 $ 大概)。

有解决办法吗?或者您可以不在代码段中使用字符串插值吗?

好的,事实证明,这非常简单。我一时兴起做了这个并且成功了:

job.Location = $$"{e["$locationfield$"]}";
return true;

另一个我没有尝试过的解决方案是,您实际上可以指定代码段应该使用什么作为分隔符:

<Code Language="csharp" Delimiter="$">

只需将 $ 更改为您 不会 在此特定代码块中使用的其他内容。