2006/02/14

VS2005のジェネリック・クラス


C#&VBジェネリック超入門(前編)

@ITにて、Visual Studio 2005でバージョンアップしたC#2.0とVB2005に追加された、ジェネリック・クラスについての解説が公開されています。

ジェネリック・クラスとは、C++でいうところのテンプレートクラスと同じものだと思います(記事にはないですが)。具体例を見るとイメージがつくと思います。

C#2.0では、従来のArrayListはあまり使われなくなるだろうと記事にあります。ArrayListを利用するソースは以下のようになります(記事より引用)。

using System.Collections;

ArrayList alist = new ArrayList();

alist.Add("こんにちわ");
alist.Add("さようなら");

string greeting;
greeting = (string)alist[0]; // キャストが必要

これには以下の問題がありました。

  1. ArrayListにどんなクラスでも入ってしまう。
  2. 取り出すときにキャストしなければいけない。

1は実行時エラーを起こす可能性があり、2はキャスト処理のためにオーバーヘッドが生じる問題があります。この問題がジェネリック・クラスでは解消されて、以下のようなソースになります(記事より引用)。

using System.Collections.Generic;

List<string> stringList = new List<string>();

stringList.Add("こんにちわ");
stringList.Add("さようなら");

string greeting;
greeting = stringList[0]; // キャスト不要

このようなジェネリック・クラスが、ハッシュテーブルなどにも用意され、自作クラスでも利用できるようになりました。便利になりましたね。


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。


    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから