我已經搜查了這一點,但我也不太清楚搜索項所以沒有發現任何東西。
爲什麼我不能做到這一點:
class foo
{
var bar = new Dictionary<string, string>();
}
猜必須有一個很好的理由,但我不能認爲它!
我對推理更感興趣,而不是因爲「C#不讓你」回答。
編輯:編輯Dictionary
聲明,抱歉(只是在例子中的錯字)!
我已經搜查了這一點,但我也不太清楚搜索項所以沒有發現任何東西。
爲什麼我不能做到這一點:
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