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

C# で変数を型パラメーターとして使用してジェネリック型をインスタンス化するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-13 06:03:43
オリジナル
119 人が閲覧しました

How Can I Instantiate a Generic Type in C# with a Variable as the Type Parameter?

変数を型パラメーターとして使用して C# ジェネリック型をインスタンス化します

C# では、動的に決定された型パラメーターに基づいてジェネリック型のインスタンスを作成することが必要になることがよくあります。ただし、型パラメータ値を new キーワードに直接指定することはできず、次のエラーが発生します:

<code>'List<k>' is a 'Type' but is used like a 'Type'</k></code>
ログイン後にコピー

解決策

この制限を克服するには、リフレクションを使用してジェネリック型を明示的に構築できます。

  1. ジェネリック クラスの型を取得します (例: List<T>):

    <code class="language-C#">Type genericListType = typeof(List<>);</code>
    ログイン後にコピー
  2. <T> を目的の型に置き換えて、具体的なジェネリック型を取得します。

    <code class="language-C#">Type specificListType = genericListType.MakeGenericType(typeof(double));</code>
    ログイン後にコピー
  3. リフレクションを使用して、特定のジェネリック型のインスタンスを作成します:

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

このアプローチでは、変数駆動型パラメーターを使用するジェネリック型のインスタンスを作成できます。

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

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