Type.IsGenericParameter プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメーターを表しているかどうかを示す値を取得します。
public:
abstract property bool IsGenericParameter { bool get(); };
public:
virtual property bool IsGenericParameter { bool get(); };
public abstract bool IsGenericParameter { get; }
public virtual bool IsGenericParameter { get; }
member this.IsGenericParameter : bool
Public MustOverride ReadOnly Property IsGenericParameter As Boolean
Public Overridable ReadOnly Property IsGenericParameter As Boolean
プロパティ値
true
オブジェクトがジェネリック型定義またはジェネリック メソッド定義の型パラメーターを表している場合は Type。それ以外の場合は false
。
例
次の例では、 IsGenericParameter プロパティを使用して、ジェネリック型のジェネリック型パラメーターをテストします。
if ( t->IsGenericType )
{
// If this is a generic type, display the type arguments.
//
array<Type^>^typeArguments = t->GetGenericArguments();
Console::WriteLine( L"\tList type arguments ({0}):",
typeArguments->Length );
System::Collections::IEnumerator^ myEnum =
typeArguments->GetEnumerator();
while ( myEnum->MoveNext() )
{
Type^ tParam = safe_cast<Type^>(myEnum->Current);
// If this is a type parameter, display its
// position.
//
if ( tParam->IsGenericParameter )
{
Console::WriteLine(
L"\t\t{0}\t(unassigned - parameter position {1})",
tParam, tParam->GenericParameterPosition );
}
else
{
Console::WriteLine( L"\t\t{0}", tParam );
}
}
}
if (t.IsGenericType)
{
// If this is a generic type, display the type arguments.
//
Type[] typeArguments = t.GetGenericArguments();
Console.WriteLine("\tList type arguments ({0}):",
typeArguments.Length);
foreach (Type tParam in typeArguments)
{
// If this is a type parameter, display its
// position.
//
if (tParam.IsGenericParameter)
{
Console.WriteLine("\t\t{0}\t(unassigned - parameter position {1})",
tParam,
tParam.GenericParameterPosition);
}
else
{
Console.WriteLine("\t\t{0}", tParam);
}
}
}
If t.IsGenericType Then
' If this is a generic type, display the type arguments.
'
Dim typeArguments As Type() = t.GetGenericArguments()
Console.WriteLine(vbTab & "List type arguments (" _
& typeArguments.Length & "):")
For Each tParam As Type In typeArguments
' If this is a type parameter, display its position.
'
If tParam.IsGenericParameter Then
Console.WriteLine(vbTab & vbTab & tParam.ToString() _
& vbTab & "(unassigned - parameter position " _
& tParam.GenericParameterPosition & ")")
Else
Console.WriteLine(vbTab & vbTab & tParam.ToString())
End If
Next tParam
End If
注釈
Type ジェネリック型パラメーターを表す オブジェクトは、ジェネリック型定義を表す オブジェクトの メソッド、またはジェネリック メソッド定義を表す オブジェクトの メソッドを呼び出すことによって GetGenericArguments Type GetGenericArguments MethodInfo 取得できます。
ジェネリック型またはメソッド定義の場合、 プロパティは、 IsGenericParameter 結果の配列のすべての
true
要素に対して を返します。閉じた構築型またはメソッドの場合、 プロパティは、 メソッドによって返される配列のすべての要素 IsGenericParameter
false
に対して を返 GetGenericArguments します。オープンに構築された型またはメソッドの場合、配列の一部の要素は特定の型である可能性があります。他の要素は型パラメーターである可能性があります。 IsGenericParameter は、
false
型パラメーターの とtrue
型パラメーターに対して を返します。 プロパティのコード例 ContainsGenericParameters は、型と型パラメーターが混合されたジェネリック クラスを示しています。
ジェネリック リフレクションで使用する用語に関する一定の条件の一覧については、IsGenericType プロパティの解説を参照してください。