技術解説 .NET 2.0 ジェネリック(Generics) 第5回 Dictionary<TKey, TValue>
2006/01/26
この文書はVisual Studio 2005をベースに記述されています。
第5回 Dictionary<TKey, TValue>
あるキーと値の組み合わせを1.xではHashtableや、IDictionaryで表現してきた。
1.x C# Hashtable ht = new Hashtable(); ht.Add(3, "A"); ht.Add(1, "B"); ht.Add(2, "C"); MessageBox.Show((string)ht[2]);
1.x VB Dim ht As Hashtable = New Hashtable ht.Add(3, "A") ht.Add(1, "B") ht.Add(2, "C") MessageBox.Show(CStr(ht(2)))
1.x MC++ Hashtable __gc *ht = new Hashtable(); ht->Add(__box(3), S"A"); ht->Add(__box(1), S"B"); ht->Add(__box(2), S"C"); MessageBox::Show(static_cast<String*>(ht->get_Item(__box(2))));
型を宣言時に固定化できるということは、すべてのキャストが不要になるということだ。
特にDictionaryでは2値を扱うためキャストが増大傾向にある。
2.0 C# Dictionary<int, string> dic = new Dictionary<int, string>(); dic.Add(3, "A"); dic.Add(1, "B"); dic.Add(2, "C"); MessageBox.Show(dic[2]);
2.0 VB Dim dic As Dictionary(Of Integer, String) = New Dictionary(Of Integer, String) dic.Add(3, "A") dic.Add(1, "B") dic.Add(2, "C") MessageBox.Show(dic(2))
2.0 C++/CLI Dictionary<int, String^>^ dic = gcnew Dictionary<int, String^>(); dic->Add(3, "A"); dic->Add(1, "B"); dic->Add(2, "C"); MessageBox::Show(dic->default[2]);
どうだろう。
今回のソースなどまさしくどの言語も同じ単純明快。
これこそが.NETな世界だといえると思いませんか?