情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Type.IsGenericParameter プロパティ

2013/12/12

現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメーターを表しているかどうかを示す値を取得します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public virtual bool IsGenericParameter { get; }

プロパティ値

型: System.Boolean
Type オブジェクトがジェネリック型定義またはジェネリック メソッド定義の型パラメーターを表している場合は true。それ以外の場合は false

ジェネリック型パラメーターを表す Type オブジェクトを取得するには、ジェネリック型定義を表すType オブジェクトの GetGenericArguments メソッドを呼び出すか、またはジェネリック メソッド定義を表す MethodInfo オブジェクトの GetGenericArguments メソッドを呼び出します。

  • ジェネリック型定義またはジェネリック メソッド定義の場合、IsGenericParameter プロパティは結果の配列の各要素に対して true を返します。

  • クローズ構築型またはメソッドの場合、IsGenericParameter プロパティは GetGenericArguments メソッドによって返される配列の各要素に対して false を返します。

  • オープン構築型またはメソッドの場合は、配列のいくつかの要素が固有の型となり、他の要素が型パラメーターとなる場合があります。IsGenericParameter は、型に対して false を、型パラメーターに対して true を返します。さまざまな型および型パラメーターが混在して指定されたジェネリック クラスを ContainsGenericParameters プロパティのコード例に示します。

ジェネリック リフレクションで使用する用語に関する一定の条件の一覧については、IsGenericType プロパティの解説を参照してください。

IsGenericParameter プロパティを使用してジェネリック型のジェネリック型パラメーターをテストする例を次に示します。


if (t.IsGenericType)
{
   // If this is a generic type, display the type arguments.
   //
   Type[] typeArguments = t.GetGenericArguments();

   outputBlock.Text += String.Format("\tList type arguments ({0}):",
       typeArguments.Length) + "\n";

   foreach (Type tParam in typeArguments)
   {
      // If this is a type parameter, display its
      // position.
      //
      if (tParam.IsGenericParameter)
      {
         outputBlock.Text += String.Format("\t\t{0}\t(unassigned - parameter position {1})",
             tParam,
             tParam.GenericParameterPosition) + "\n";
      }
      else
      {
         outputBlock.Text += String.Format("\t\t{0}", tParam) + "\n";
      }
   }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: