ホームページ > バックエンド開発 > C++ > 型変数を使用して C# でジェネリック インスタンスを動的に作成するにはどうすればよいですか?

型変数を使用して C# でジェネリック インスタンスを動的に作成するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-13 07:09:42
オリジナル
360 人が閲覧しました

How Can I Dynamically Create Generic Instances in C# Using Type Variables?

型変数を使用したジェネリック インスタンスの動的作成

C# では、ジェネリック型は、さまざまなデータ型を処理できるデータ構造を定義して使用するための便利な方法を提供します。ただし、場合によっては、包含型の変数を使用してジェネリック型のインスタンスを作成することが必要になる場合があります。

次のコードは、double 型を含む変数 k を使用して List インスタンスを作成しようとします。ただし、コンパイルに失敗します:

<code class="language-c#">Type k = typeof(double);
List<k> lst = new List<k>();</code>
ログイン後にコピー

この問題を解決するには、次の方法を使用できます:

  1. 汎用リスト型を格納する Type 型の変数を作成します。
  2. ジェネリック リスト型の MakeGenericType メソッドを使用して、特定の型 (この場合は List) を作成します。
  3. 最後に、Activator.CreateInstance を使用して、特定のリスト タイプのインスタンスを作成します。

以下は修正されたコードです:

<code class="language-c#">var genericListType = typeof(List<>); // 注意<>
var specificListType = genericListType.MakeGenericType(typeof(double));
var list = Activator.CreateInstance(specificListType);</code>
ログイン後にコピー

このアプローチでは、 Type を含む変数を使用してジェネリック型のインスタンスを動的に作成できます。この柔軟性により、複雑なデータ構造や、ジェネリック型をプログラムで決定する必要があるシナリオを処理できるようになります。 typeof(List<>) 内の <> に注目してください。これは、これが特定の型ではなくジェネリック型であることを示しています。

以上が型変数を使用して C# でジェネリック インスタンスを動的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート