2010-11-26 15 views
3

私は訓練生のソフトウェアエンジニアです。コレクションとジェネリックに関する自己学習を行い、TLに報告しました。彼は私にこれらのことも勉強するように勧めました。.NETのコレクションとジェネリックの仕組みは?

特にジェネリック型ジェネリック型のメモリの定義方法、ILとCLRのジェネリックの仕組みは?

一般的なオーバーコレクションのパフォーマンス、またはボクシングのアンボクシング?

私はグーグルではありますが、限定的な答えです。誰でも説明したり、勉強することについて何か問題(リンク)を与えることができます。

ありがとうございました。

+0

なぜですか?内部が変わる可能性があります。そのため、よく定義されたライブラリを使用しています。 –

+0

私は、OPはジェネリックが生のコレクションの種類とどのように違うのかを考えました。 –

+0

@スリニバス... yaそれだけです。ジェネリックタイプの汎用メモリの場合、Tは何でもかまいません。 – PawanS

答えて

7

.NET共通言語ランタイムのジェネリックスの設計と実装Andrew KennedyとDon SymeによるCLRのジェネリックスの実装についての理論について、について説明します。 http://research.microsoft.com/pubs/64031/designandimplementationofgenerics.pdf

ソースコードは、System.Collections.Genericでデバッグできる.NET Framework用に用意されています。 http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx

あなたはより深い情報が必要な場合、あなたは、.NET Frameworkの「ソース利用可能」の部分であるローター(別名シェアードソース共通言語基盤)のソースコードを、読み取ることができます。 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8c09fd61-3f26-4555-ae17-3121b4f51d4d&displaylang=en

もう1つの実装はMonoプロジェクトです。彼らにはジェネリックコレクションの実装があり、Monoコードベースはオープンソースです。 http://www.mono-project.com/Main_Page

+0

ありがとうJames、私は欲しいものを手に入れました。 – PawanS

3

.NET内部を見るための非常に良いツールはReflectorです。これは、コレクションを含む多くの.NETクラスの完全なC#(またはVB、またはIL)コードを示しています。

+0

Visual Studio 2010 Express Editionでは動作しません。私は最初に試用版を使いました。 – PawanS

+1

これはvnetとは独立して動作しますが、vnetに統合されたプラグイン(購入する必要があります)があり、ソースコードにアクセスすることなくサードパーティのアセンブリをデバッグすることができます。リフレクターを使用することをお勧めします。それは必須です。 – Onkelborg

+0

私の最初のコメントには申し訳ありません。あなたは独立して働くことができます。私は今、それをやっています。 – PawanS