Aracılığıyla paylaş


Type.GetGenericArguments Yöntem

Tanım

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

public:
 virtual cli::array <Type ^> ^ GetGenericArguments();
public virtual Type[] GetGenericArguments();
abstract member GetGenericArguments : unit -> Type[]
override this.GetGenericArguments : unit -> Type[]
Public Overridable Function GetGenericArguments () As Type()

Döndürülenler

Type[]

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

Özel durumlar

Çağrılan yöntem temel sınıfta desteklenmez. Türetilmiş sınıfların bir uygulama sağlaması gerekir.

Örnekler

Aşağıdaki kod örneğinde GetGenericArguments , bir türün tür bağımsız değişkenlerini ve genel tür tanımının tür parametrelerini görüntülemek için yöntemi kullanılır.

Bu kod örneği, özelliği için IsGenericTypeDefinition sağlanan daha büyük bir örneğin parçasıdır. Örnek çıktı için daha büyük örneğe bakın.

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.
    let typeArguments = t.GetGenericArguments()

    printfn $"\tList type arguments ({typeArguments.Length}):"

    for tParam in typeArguments do
        // If this is a type parameter, display its
        // position.
        if tParam.IsGenericParameter then
            printfn $"\t\t{tParam}\t(unassigned - parameter position {tParam.GenericParameterPosition})"
        else
            printfn $"\t\t{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

Açıklamalar

Dizi öğeleri, genel tür için tür bağımsız değişkenleri listesinde göründükleri sırayla döndürülür.

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

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

  • Geçerli tür, genel türleri veya yöntemleri kapsayan tüm tür parametrelerine ve tür parametrelerine atanmamış açık bir türse (yani özellik ContainsGenericParameters 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 bir gösterimi için özelliği için kod örneğine ContainsGenericParameters bakın.

Genel yansımada kullanılan terimlere ilişkin sabit koşulların IsGenericType listesi için özellik açıklamalarına bakın.

Şunlara uygulanır

Ayrıca bkz.