C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#ジェネリックとC++テンプレート


C#ジェネリックおよびC ++テンプレートは、パラメーター化された型のサポートを提供します。違いは次のとおりです-

柔軟性

C ++テンプレートは、C#ジェネリックよりも柔軟性があります

明示的な特殊化

明示的な特殊化はC#ではサポートされていません

タイプパラメータ

typeパラメーターは、C#のジェネリック型の基本クラスとして使用できません

C#では、型パラメーターにデフォルトの型を設定することはできません。

ランタイム

C ++テンプレートにはコンパイル時のモーダルがありますが、C#Genericsはコンパイル時と実行時の両方です。ジェネリックはランタイムをサポートしています。

非型テンプレートパラメータ

C#Templatesは、型以外のテンプレートパラメータを許可しません。

部分的な特殊化

C#は部分的な特殊化さえサポートしていません。


  1. C#でのジェネリックと非ジェネリック

    C#には、非ジェネリックコレクションとジェネリックコレクションの2種類のコレクションがあります。 C#のジェネリックス ジェネリックコレクションは、同じデータ型の要素を保持します。 例- リスト 辞書 ハッシュセット 辞書- 辞書は、C#のキーと値のコレクションです。辞書はSystem.Collection.Generics名前空間に含まれています。 ハッシュセット- C#のHashSetは、配列内の重複する文字列または要素を排除します。C#では、最適化されたセットコレクションです。 C#の非ジェネリック 非ジェネリックコレクションは、さまざまなデータ型の要素を保持します。

  2. C#のジェネリック

    ジェネリックスを使用すると、任意のデータ型で機能するクラスまたはメソッドを記述できます。 データ型の代わりのパラメーターを使用して、クラスまたはメソッドの仕様を記述します。コンパイラーは、クラスのコンストラクターまたはメソッドの関数呼び出しを検出すると、特定のデータ型を処理するコードを生成します。 ジェネリックスは、次の方法でプログラムを強化する手法です- コードの再利用、型の安全性、パフォーマンスを最大化するのに役立ちます。 ジェネリックコレクションクラスを作成できます。 .NET Frameworkクラスライブラリには、System.Collections.Generic名前