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

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

Patricia Arquette
リリース: 2025-01-13 06:26:42
オリジナル
927 人が閲覧しました

How Can I Create a Generic Type Instance Using a Variable Holding the Type?

<T> を含む変数を使用して汎用

型インスタンスを作成します

型を含む変数を使用してジェネリック型のインスタンスを作成することは、型情報を動的に生成するなどのシナリオで便利な手法です。 List<k> インスタンス ( k は Type 型の変数) を作成しようとする質問に示されているコードはコンパイルできない可能性がありますが、この機能を実現する他の方法があります。

考えられる解決策の 1 つは、ジェネリック型定義で MakeGenericType メソッドを使用することです。このメソッドは、型パラメーターのセットを受け入れ、これらのパラメーターを使用してインスタンス化されたジェネリック型のバージョンである新しい型を返します。この場合、コードは次のようになります:

<code class="language-csharp">var genericListType = typeof(List<>);
var specificListType = genericListType.MakeGenericType(typeof(double));</code>
ログイン後にコピー

genericListType 変数には汎用の List<T> 型の定義が含まれており、MakeGenericType メソッドは特殊な List<double> 型を返します。

特定のジェネリック型を作成した後、Activator クラスを使用してインスタンスを作成できます。 CreateInstance メソッドを使用すると、型情報に基づいて新しい型のインスタンスを作成できます。

<code class="language-csharp">var list = Activator.CreateInstance(specificListType);</code>
ログイン後にコピー

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

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