【问题标题】:C# keywords as a variableC# 关键字作为变量
【发布时间】:2020-10-10 16:04:55
【问题描述】:

在 VB.NET 中,您可以用括号将变量名括起来,并使用关键字作为变量名,如下所示:

Dim [goto] As String = ""

是否有 C# 等效于执行此操作?

【问题讨论】:

  • 我一直在寻找 VB.NET 的方法,而您刚刚回答了我的问题。谢谢。

标签: c#


【解决方案1】:
string @string = "";

【讨论】:

  • 这是 baaad 练习恕我直言。变量名称应该是描述性的。 @string 不是描述性的。
  • @Daneil:这可能是不好的做法,但这是一个非常好的答案。
  • @ 前缀的目的是允许与其他 .NET 语言的互操作性,请参阅stackoverflow.com/questions/724912/…
  • divo:此外,由于一直在引入新的关键字,因此与针对以前版本的 C# 编译的程序集的兼容性。
  • @DrJokepu 实际上没有添加新的保留关键字,只有上下文关键字。所以像“var var = 15;”这样的声明没有@ 也是有效的。似乎这是为了避免向后兼容性问题而故意这样做的。 blogs.msdn.com/ericlippert/archive/2009/05/11/…
【解决方案2】:

是的,用@前缀

String @goto = "";

【讨论】:

    【解决方案3】:

    在您的变量前加上 @ 符号

    string @class = "fred";
    

    @ 符号也可以用来作为非转义字符串文字的前缀:

    string a = "fred\"; \\ invalid
    string b = @"fred\"; \\ valid. the backslash is part of the literal 'fred\'
    

    我不时使用后者,但认为使用@ 符号来命名变量很难看。

    【讨论】:

      【解决方案4】:

      带@

      public IActionResult Submit(Guid? id, string type, string key, string @event)
      {
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-01
        • 2021-09-11
        • 1970-01-01
        • 2016-10-24
        • 2012-06-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多