Aracılığıyla paylaş


MethodInfo.GetGenericArguments Yöntem

Tanım

Genel bir yöntemin Type tür bağımsız değişkenlerini veya genel bir yöntem tanımının tür parametrelerini temsil eden bir nesne dizisi döndürür.

public:
 override cli::array <Type ^> ^ GetGenericArguments();
public override Type[] GetGenericArguments ();
[System.Runtime.InteropServices.ComVisible(true)]
public override Type[] GetGenericArguments ();
override this.GetGenericArguments : unit -> Type[]
[<System.Runtime.InteropServices.ComVisible(true)>]
override this.GetGenericArguments : unit -> Type[]
Public Overrides Function GetGenericArguments () As Type()

Döndürülenler

Type[]

Genel bir yöntemin Type tür bağımsız değişkenlerini veya genel bir yöntem tanımının tür parametrelerini temsil eden bir nesne dizisi. Geçerli yöntem genel bir yöntem değilse boş bir dizi döndürür.

Öznitelikler

Özel durumlar

Bu yöntem desteklenmez.

Örnekler

Aşağıdaki kod örneği, genel bir yöntemin tür bağımsız değişkenlerinin nasıl alınıp görüntüleneceğini gösterir.

Bu örnek, yöntemi için MakeGenericMethod sağlanan daha büyük bir örneğin parçasıdır.

// If this is a generic method, display its type arguments.
//
if (mi->IsGenericMethod)
{
    array<Type^>^ typeArguments = mi->GetGenericArguments();

    Console::WriteLine("\tList type arguments ({0}):", 
        typeArguments->Length);

    for each (Type^ tParam in typeArguments)
    {
        // IsGenericParameter is true only for generic type
        // parameters.
        //
        if (tParam->IsGenericParameter)
        {
            Console::WriteLine("\t\t{0}  parameter position {1}" +
                "\n\t\t   declaring method: {2}",
                tParam,
                tParam->GenericParameterPosition,
                tParam->DeclaringMethod);
        }
        else
        {
            Console::WriteLine("\t\t{0}", tParam);
        }
    }
}
// If this is a generic method, display its type arguments.
//
if (mi.IsGenericMethod)
{
    Type[] typeArguments = mi.GetGenericArguments();

    Console.WriteLine("\tList type arguments ({0}):",
        typeArguments.Length);

    foreach (Type tParam in typeArguments)
    {
        // IsGenericParameter is true only for generic type
        // parameters.
        //
        if (tParam.IsGenericParameter)
        {
            Console.WriteLine("\t\t{0}  parameter position {1}" +
                "\n\t\t   declaring method: {2}",
                tParam,
                tParam.GenericParameterPosition,
                tParam.DeclaringMethod);
        }
        else
        {
            Console.WriteLine("\t\t{0}", tParam);
        }
    }
}
' If this is a generic method, display its type arguments.
'
If mi.IsGenericMethod Then
    Dim typeArguments As Type() = mi.GetGenericArguments()
    
    Console.WriteLine(vbTab & "List type arguments ({0}):", _
        typeArguments.Length)
    
    For Each tParam As Type In typeArguments
        ' IsGenericParameter is true only for generic type
        ' parameters.
        '
        If tParam.IsGenericParameter Then
            Console.WriteLine(vbTab & vbTab _
                & "{0}  parameter position: {1}" _
                & vbCrLf & vbTab & vbTab _
                & "   declaring method: {2}", _
                tParam,  _
                tParam.GenericParameterPosition, _
                tParam.DeclaringMethod)
        Else
            Console.WriteLine(vbTab & vbTab & tParam.ToString())
        End If
    Next tParam
End If

Açıklamalar

Döndürülen dizinin öğeleri, genel yöntem için tür parametreleri listesinde göründükleri sıradadır.

  • Geçerli yöntem kapalı bir yöntemse (yani ContainsGenericParameters özelliği döndürür false), yöntemi tarafından GetGenericArguments döndürülen dizi, genel yöntem tanımının genel tür parametrelerine atanmış türleri içerir.

  • Geçerli yöntem genel bir yöntem tanımıysa, dizi tür parametrelerini içerir.

  • Geçerli yöntem, belirli türlerin bazı tür parametrelerine atandığı ve genel türleri kapsayan ContainsGenericParameters tür parametrelerinin diğer tür parametrelerine atandığı açık bir yöntemse (yani özelliği döndürür true), dizi hem tür hem de tür parametrelerini içerir. IsGenericParameter Ayırt etmek için özelliğini kullanın. Bu senaryonun gösterimi için özelliğinin kod örneğine ContainsGenericParameters bakın.

Genel yöntemlere özgü koşulların sabit koşullarının listesi için özelliğine IsGenericMethod bakın. Genel yansımada kullanılan diğer terimlere ilişkin sabit koşulların listesi için özelliğine Type.IsGenericType bakın.

Şunlara uygulanır

Ayrıca bkz.