MethodInfo.GetGenericArguments Metoda

Definice

Vrátí pole Type objektů, které představují argumenty typu obecné metody nebo parametry typu definice obecné metody.

public override Type[] GetGenericArguments();
[System.Runtime.InteropServices.ComVisible(true)]
public override Type[] GetGenericArguments();

Návraty

Type[]

Pole Type objektů, které představují argumenty typu obecné metody nebo parametry typu definice obecné metody. Vrátí prázdné pole, pokud aktuální metoda není obecnou metodou.

Atributy

Výjimky

Tato metoda není podporována.

Příklady

Následující příklad kódu ukazuje, jak získat argumenty typu obecné metody a zobrazit je.

Tento příklad je součástí většího příkladu pro metodu MakeGenericMethod .

// 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);
        }
    }
}

Poznámky

Prvky vráceného pole jsou v pořadí, ve kterém se zobrazují v seznamu parametrů typu pro obecnou metodu.

  • Pokud je aktuální metoda uzavřená konstruovaná metoda (to znamená, ContainsGenericParameters že vlastnost vrací false), pole vrácené metodou GetGenericArguments obsahuje typy, které byly přiřazeny parametrům obecného typu definice obecné metody.

  • Pokud je aktuální metoda definice obecné metody, pole obsahuje parametry typu.

  • Pokud je aktuální metoda otevřená konstruovaná metoda (to znamená, ContainsGenericParameters že vlastnost vrací true), ve které byly určité typy přiřazeny k některým parametrům typu a parametry typu uzavírající obecné typy byly přiřazeny k jiným parametrům typu, pole obsahuje typy i parametry typu. Pomocí vlastnosti IsGenericParameter je od sebe oddělte. Ukázku tohoto scénáře najdete v příkladu kódu pro ContainsGenericParameters vlastnost .

Seznam invariantních podmínek pro podmínky specifické pro obecné metody najdete ve IsGenericMethod vlastnosti . Seznam neutrálních podmínek pro jiné termíny použité v obecné reflexi najdete ve Type.IsGenericType vlastnosti .

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Viz také