【问题标题】:Declare dictionary with one key multiple values一键多值声明字典
【发布时间】:2018-07-16 09:41:50
【问题描述】:

C# 我正在使用像这样的字典:

var dict = new Dictionary<byte, Tuple<string, string>>();           
Tuple<string, string> t = new Tuple<string, string>(label, unit);

我想将它声明为类的数据成员。但它说

上下文关键字“var”只能出现在局部变量声明或脚本代码中

我该如何解决这个问题?

【问题讨论】:

  • 试试Dictionary&lt;byte, Tuple&lt;string, string&gt;&gt; dict = new Dictionary&lt;byte, Tuple&lt;string, string&gt;&gt;();。在类字段声明中不能使用var
  • 正如它所说,仅将 var 用作局部变量声明或在脚本代码中。除此之外,请使用类型本身。
  • 您在类中或函数内将其声明为局部变量?如果在类中,变量不应该使用 var,你应该 Dictionary> dict = new Dictionary>();

标签: c# dictionary var class-members


【解决方案1】:

错误信息很清楚。不能使用var 声明类成员,只能用于局部变量。

对于类成员,您需要使用显式类型:

public class MyClass
{
    Dictionary<byte, Tuple<string, string>> dict = new Dictionary<byte, Tuple<string, string>>();

    // ...
}

【讨论】:

    【解决方案2】:

    在 C# 中你不能使用 var 来声明类成员:

    这里是实现此功能的技术问题。常见的 案例看起来很简单,但更难的案例(例如,字段引用 链或循环中的其他字段,包含匿名的表达式 类型)不是。

    取自博文Why no var on fields?post

    在这种情况下,您需要声明显式类型:

    Dictionary<byte, Tuple<string, string>> dict = new Dictionary<byte, Tuple<string, string>>();
    

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 2017-06-05
      • 2011-01-07
      • 2015-06-03
      • 2014-07-24
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      相关资源
      最近更新 更多