C# 隐式类型类成员

C# 隐式类型类成员,c#,c#-4.0,c#-3.0,implicit-typing,C#,C# 4.0,C# 3.0,Implicit Typing,可能重复: 我已经搜索了一点,但是对搜索词不太确定,所以什么也没找到 为什么我不能这样做: class foo { var bar = new Dictionary<string, string>(); } class-foo { var bar=新字典(); } 我猜一定有很好的理由,但我想不起来 我更感兴趣的是推理,而不是“C#不让你”的答案 编辑:编辑了字典声明,对不起(只是示例中的输入错误) 您没有为密钥指定类型,它应该是: class foo { Di

可能重复:

我已经搜索了一点,但是对搜索词不太确定,所以什么也没找到

为什么我不能这样做:

class foo
{
    var bar = new Dictionary<string, string>();
}
class-foo
{
var bar=新字典();
}
我猜一定有很好的理由,但我想不起来

我更感兴趣的是推理,而不是“C#不让你”的答案


编辑:编辑了
字典
声明,对不起(只是示例中的输入错误)

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

class foo
{
    Dictionary<string,string> bar = new Dictionary<string,string>();
}
class-foo
{
字典栏=新字典();
}

编辑:在类字段中不允许使用“var”。

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

class foo
{
    Dictionary<string,string> bar = new Dictionary<string,string>();
}
class-foo
{
字典栏=新字典();
}
编辑:在类字段中不允许使用“var”。

2原因:

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

    class-foo
    {
    专用字典栏=新字典();
    }
    
    至于你为什么不能这样做:

    class foo
    {
        private var bar = new Dictionary<string, string>();
    }
    
    class-foo
    {
    private var bar=new Dictionary();
    }
    
    Eric Lippert在一篇文章中对此进行了阐述。

    2个原因:

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

    class-foo
    {
    专用字典栏=新字典();
    }
    
    至于你为什么不能这样做:

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

    Eric Lippert在一篇文章中介绍了这一点。

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

    var bar = new Dictionary<string, string>();
    
    var bar=newdictionary();
    
    字典需要两个参数,一个键类型和一个值类型

    var bar = new Dictionary<string, string>();
    
    var bar=newdictionary();
    
    “字典”是指键/值对的集合。在现实世界中,世界词典是一本包含“单词”和“定义”的书,这里“单词”是关键,“定义”是价值。因此,很明显,在实例化
    字典时不能忽略“value”

    “Dictionary”表示键/值对的集合。在现实世界中,世界词典是一本包含“单词”和“定义”的书,这里“单词”是关键,“定义”是价值。因此,很明显,在实例化
    字典时不能忽略“value”

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

    var stocks = new Dictionary<string, decimal>();
    stocks.Add("MSFT", 25.5M);
    stocks.Add("AAPL", 339.87M);
    
    var stocks=newdictionary();
    股票。加上(“MSFT”,2550万美元);
    增加(“AAPL”,3.3987亿美元);
    
    字典是用于将一组键映射到一组值的类,因此需要为键和值指定类型参数。例如,如果要根据股票符号查找股价,可以使用:

    var stocks = new Dictionary<string, decimal>();
    stocks.Add("MSFT", 25.5M);
    stocks.Add("AAPL", 339.87M);
    
    var stocks=newdictionary();
    股票。加上(“MSFT”,2550万美元);
    增加(“AAPL”,3.3987亿美元);
    
    Fixed,这是因为“var”,仅在成员变量的情况下才允许。Fixed,这是因为“var”,仅在成员变量的情况下才允许。