C# のジェネリック メソッドでパラメーターとして変数型を使用する
C# のジェネリクスは、型ごとに個別の実装を実装することなく、さまざまなデータ型を操作できる柔軟なメソッドとクラスを作成する方法を提供します。ただし、変数の型をジェネリック メソッドのパラメーターとして使用することは、特にコンパイル時に型が不明な場合には困難になる可能性があります。
次の一般的なメソッドを考えてみましょう:
<code class="language-csharp">bool DoesEntityExist<T>(Guid guid, ITransaction transaction) where T : IGloballyIdentifiable;</code>
このメソッドは、GUID とトランザクションに基づいてエンティティが存在するかどうかを確認します。このメソッドを使用するには、エンティティのタイプがコンパイル時にわかっている必要があります。これは通常、次のようにメソッドを呼び出すときに型パラメーターを明示的に指定することで行われます。
<code class="language-csharp">DoesEntityExist<MyType>(entityGuid, transaction);</code>
<code>找不到类型或命名空间名称“T”(是否缺少 using 指令或程序集引用?)</code>
<code class="language-csharp">Type t = entity.GetType(); MethodInfo method = GetType().GetMethod("DoesEntityExist") .MakeGenericMethod(new Type[] { t }); method.Invoke(this, new object[] { entityGuid, transaction });</code>
以上がC# のジェネリック メソッドで変数の型をパラメーターとして使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。