中の技術日誌
 ホーム / 上へ

技術解説 .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な世界だといえると思いませんか?

[戻る] [進む]


2006/12/16 大阪勉強会#4 + 忘年会 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告