隐式类型的类成员

本文关键字:成员 类型 | 更新日期: 2023-09-27 17:57:12

可能的重复项:
在方法外部使用 var

我已经搜索了

一下,但不太确定搜索词,所以没有找到任何东西。

为什么我不能这样做:

class foo
{
    var bar = new Dictionary<string, string>();
}

猜一定有很好的理由,但我想不起来!

我更感兴趣的是推理,而不是因为"C#不让你"的答案。

编辑

:编辑Dictionary声明,对不起(只是示例中的错字)!

隐式类型的类成员

2 个原因:

  1. 字典需要键和值泛型参数
  2. 你不能直接在类中编写这样的变量 =>你可以使用字段、属性或方法

所以:

class foo
{
    private Dictionary<string, string> bar = new Dictionary<string, string>();
}

至于为什么你不能这样做:

class foo
{
    private var bar = new Dictionary<string, string>();
}

Eric Lippert在一篇博客文章中对此进行了介绍。

您没有为键指定类型,它应该是:

class foo
{
    Dictionary<string,string> bar = new Dictionary<string,string>();
}

编辑:在类字段的情况下不允许使用"var"。

字典需要两个参数,一个键类型和一个值类型。

var bar = new Dictionary<string, string>();
"

字典"表示键/值对的集合。在现实世界中,世界词典是一本包含"单词"和"定义"的书,这里的"单词"是关键,"定义"是价值。所以很明显,在实例化Dictionary<TKey, TValue>时不能忽略"值"。

字典是用于将一组键映射到一组值的类,因此您需要为键和值指定类型参数。 例如,如果要根据股票代码查找股价,则可以使用:

var stocks = new Dictionary<string, decimal>();
stocks.Add("MSFT", 25.5M);
stocks.Add("AAPL", 339.87M);