【问题标题】:Reading nested curly brackets as part of string读取嵌套的大括号作为字符串的一部分
【发布时间】:2018-09-19 12:25:35
【问题描述】:

我有这样的密码iD&NAAY#{.x}NqpzK|%

当我试图将它存储在这样的字符串变量中时

string password = $"\"iD&NAAY#{.x}NqpzK|%\""

我在这部分{.x}得到一个编译时错误(无效的表达式术语)

如何避免这种情况并将此密码作为完整的字符串类型读取?

【问题讨论】:

  • 你应该 double 每个 {}: $"\"iD&NAAY#{{.x}}NqpzK|%\"" 或只是 drop $ 前缀: string password = "\"iD&NAAY#{.x}NqpzK|%\"";跨度>

标签: c# .net string


【解决方案1】:

不要使用interpolated string,也就是说,定义没有$符号前缀的字符串。

当您使用$ 符号前缀时,C# 正在解析您的字符串,试图在其中找到变量引用并将它们替换为变量值。字符串中变量引用的格式为{variable_name}

示例

var test = "abcd";
var interpolated_string = $"Test: {test}";

变量interpolated_string 将包含字符串Test: abcd

如果去掉$符号前缀,字符串不会被处理,会被当作文字:

var test = "abcd";
var interpolated_string = "Test: {test}";

变量interpolated_string 现在将包含字符串Test: {test}

【讨论】:

  • @SebastianHofmann 很好,谢谢!我只是在做一个 Python 项目 :)
  • 当您使用它时:每行末尾缺少分号;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多