<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 サイトの他の関連記事を参照してください。