C#のジェネリック学習(A)

ジェネリック医薬品のための最初の.NET 2.0のサポートから。ジェネリック医薬品は、私たちが助けることができるタイプが含まれているとは独立して作成したクラスとメソッドを。

あなたは、データの複数のタイプの動作を実現することができ、一般的なクラスやメソッドを作成している限り、メソッドやクラスと同じ機能の異なる種類を記述する必要はありません。

オブジェクトのタイプは、あなたがそのような機能を実現することができますが、それはタイプセーフではありませんが。

ジェネリック医薬品は、だけでなく、C#言語とCLRの構造が定義されます。したがって、C#で定義された一般的なクラスは、VBがジェネリック型の特定のインスタンスであってもよいです。

汎用オブジェクトの実装と実現 

 

   静的 ボイドメイン(文字列[]引数)
        { 
            // ArrayListのクラス以下にSystem.Collections名前空間は、オブジェクトが格納されている
             // add()メソッド、付加型データの値を、パラメータは、オブジェクト型に、ボックス化される必要がありますデータにアクセスするときは、する必要が
             // キャストする、開梱データ。
            VaRの一覧= 新しい新規のArrayList(); 
            list.add(44である);
             INT I1 =(INT)リスト[ 0 ];
             foreachのint型の項目一覧)
            { 
                Console.WriteLineを(項目); 
            } 
            //次の名前空間System.Collections.Genericリスト<T>は、一般的なクラスです。
            // 型がintとして定義され、int型は非常に動的に生成されたクラスのJITコンパイラで使用されているが、コンパイル後に新しいタイプを生成します。この型は、int型のパラメータ受け入れることです
             // もはや開梱や梱包を。
            //
             VARのIList = 新しい新しいリスト< 整数 > (); 
            IList.Add(44である);
             INT I2 =のIList [ 0 ];
             foreachのVARの項目のIList)
            { 
                Console.WriteLineを(項目); 
            } 

         
            Console.ReadKey()。
        }

 

 あなたは、次の2つのコード行を追加する場合:

     list.Add( "こんにちは");
               ilist.Add( "こんにちは");

ジェネリックを使用する場合は、コンパイルされません。

そして、オブジェクトを使用した場合、コンパイラができますが、データにアクセスする際に、ボクシングとアンボクシングは、異常を報告します。

そのため、一般的なオブジェクト、タイプセーフ、より良いパフォーマンスに関して。

 

おすすめ

転載: www.cnblogs.com/andonglu/p/11076500.html