蕴类型的类成员
问题描述:
我已经搜查了这一点,但我也不太清楚搜索项所以没有发现任何东西。
为什么我不能做到这一点:
class foo
{
var bar = new Dictionary<string, string>();
}
猜必须有一个很好的理由,但我不能认为它!
我对推理更感兴趣,而不是因为“C#不让你”回答。
编辑:编辑Dictionary
声明,抱歉(只是在例子中的错字)!
答
2个原因:
- 辞典需要钥匙和价值泛型参数
- 你不能直接写一个类里面像这样的变量=>你可以使用的字段,属性或方法
所以:
class foo
{
private Dictionary<string, string> bar = new Dictionary<string, string>();
}
至于你为什么不能这样做:
class foo
{
private var bar = new Dictionary<string, string>();
}
Eric Lippert在blog post中报道了它。
答
没有指定一个该键的类型,它应该是:
class foo
{
Dictionary<string,string> bar = new Dictionary<string,string>();
}
编辑:而且它不允许在类字段的情况下使用“变种”。
答
字典需要两个参数,一个键类型和一个值类型。
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);
不,这不会编译。 – 2011-05-19 09:00:07
固定,这是因为“var”,它只允许在成员变量的情况下。 – BitKFu 2011-05-19 09:01:12