【问题标题】:What does the `var` inside the curly braces mean in C#? [closed]在 C# 中,花括号内的 `var` 是什么意思? [关闭]
【发布时间】:2020-10-10 04:46:01
【问题描述】:

花括号内的var 在 C# 中是什么意思?

例如有the question

问题下方有一段代码在回答中:

BitArray bits = new BitArray(new byte[] { var });

我从未见过 var 被这样使用,我也无法通过谷歌搜索找到任何关于它的信息。

当我尝试运行以下命令时:

using System;

public class Program
{
    public static void Main()
    {
        var bytes = new byte[] { var };
    }
}

我收到错误:

Compilation error (line 7, col 34): The name 'var' does not exist in the current context

我正在使用.NET 4.7.2。可能需要不同版本的.NET

【问题讨论】:

  • 链接问题中byte var = 3; 的上一行给出了答案

标签: c# .net syntax var


【解决方案1】:

在引用的问题中,声明了一个名为 var 的变量(这可能是因为 var 不是 C# 中的 reserved keywords 之一)。

这个语法:

var bytes = new byte[] { var };

适用于 collection initializer,它创建一个包含一个项目 (var) 的 byte 数组。因此,在您的情况下,您会遇到错误,因为范围内没有名称为 var 的变量/字段/属性可访问。

【讨论】:

    【解决方案2】:

    这是一个名为 var 的变量。如果您查看原始来源:

    byte var = 3;
    BitArray bits = new BitArray(new byte[] { var });
    

    var 就是所谓的"contextual keyword"。如果您将其用作标识符——在本例中是一个名为var 的变量byte——那么它的作用就像一个标识符,而不是一个关键字。所以这里并没有什么特别的含义,它只是基于一个以3为唯一元素的1元素byte数组来初始化一个BitArray

    【讨论】:

      【解决方案3】:

      var 在这种情况下可能意味着变量。您收到 var 在当前上下文中不存在的错误:

      来自原帖:

      byte var = 3;
      BitArray bits = new BitArray(new byte[] { var });
      

      【讨论】:

      • @Flydog57 是的,我同意你的看法。感谢您澄清这一点。
      猜你喜欢
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 2014-04-26
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      相关资源
      最近更新 更多