【问题标题】:What do dollar symbols in C# Code mean?C# 代码中的美元符号是什么意思?
【发布时间】:2015-07-31 07:21:21
【问题描述】:

今天,我从客户端拉取代码,但在这一行出现错误。

throw new Exception($"One or more errors occurred during removal of the company:{Environment.NewLine}{Environment.NewLine}{exc.Message}");

这行也是

moreCompanies = $"{moreCompanies},{databaseName}";

$ 符号对我来说很奇怪。这是 C# 代码。

【问题讨论】:

  • @ImmortalBlue 我也觉得用谷歌搜索 => 和 $ 这样的符号很难。
  • @ImmortalBlue,这是一个零努力的问题。这就是反对票的原因。谷歌会在我写这篇评论的时间更短的时间内回答这个问题。
  • @PanagiotisKanavos 你的意思是像这个几乎相同的问题? stackoverflow.com/questions/446835/…
  • @ImmortalBlue 或 this 出现在周末。同意并点赞
  • 我也认为客户端应该警告他们正在切换编译器

标签: c# c#-6.0


【解决方案1】:

$ 部分告诉编译器您需要interpolated string。

内插字符串是C# 6.0 的新功能之一。它们允许您将字符串文字中的占位符替换为其对应的值。

您可以将几乎任何表达式放在一对大括号 ({}) 之间的插值字符串中,该表达式将替换为该表达式结果的 ToString 表示。

当编译器遇到插值字符串时,它会立即将其转换为对String.Format 函数的调用。正因为如此,你的第一个listing和写的基本一样:

throw new Exception(string.Format(
    "One or more errors occured during removal of the company:{0}{1}{2}", 
    Envrionment.NewLine, 
    Environment.NewLine, 
    exc.Message));

如您所见,插值字符串允许您以更简洁、更容易正确表达的方式表达相同的事物。

【讨论】:

  • 非常感谢!你节省了我的时间:)
  • 值得一提的是,如果您在该行出现错误(如您所说),那么您可能没有 Visual Studio 2015。您需要 1) 升级到新的Visual Studio 2015,或 2) 将所有代码改回来,并且可能,3) 与您的客户讨论在升级之前不要使用这些功能。
  • @LasseV.Karlsen 感谢您的加入。
【解决方案2】:

这是 C# 6 中引入的新 string interpolation

【讨论】:

  • 非常感谢!你节省了我的时间:)
猜你喜欢
  • 2020-01-20
  • 1970-01-01
  • 2017-07-22
  • 2018-08-08
  • 1970-01-01
  • 2011-08-09
  • 2020-09-22
  • 2012-02-29
  • 1970-01-01
相关资源
最近更新 更多