Прочитать на английском

Поделиться через


Nullable.GetUnderlyingType(Type) Метод

Определение

Возвращает аргумент заданного базового типа, допускающего значение NULL.

public static Type GetUnderlyingType (Type nullableType);
public static Type? GetUnderlyingType (Type nullableType);

Параметры

nullableType
Type

Объект Type, описывающий закрытый универсальный тип, поддерживающий значение NULL.

Возвращаемое значение

Type

Аргумент типа параметра nullableType, если параметр nullableType является закрытым универсальным типом, допускающим значение NULL; в противном случае — значение null.

Исключения

nullableType имеет значение null.

Примеры

В следующем примере кода определяется метод, возвращаемое значение которого имеет тип Nullable<T> Int32. В примере кода метод используется GetUnderlyingType для отображения аргумента типа возвращаемого значения.

// This code example demonstrates the
// Nullable.GetUnderlyingType() method.

using System;
using System.Reflection;

class Sample
{
// Declare a type named Example.
// The MyMethod member of Example returns a Nullable of Int32.

    public class Example
    {
        public int? MyMethod()
        {
        return 0;
        }
    }

/*
   Use reflection to obtain a Type object for the Example type.
   Use the Type object to obtain a MethodInfo object for the MyMethod method.
   Use the MethodInfo object to obtain the type of the return value of
     MyMethod, which is Nullable of Int32.
   Use the GetUnderlyingType method to obtain the type argument of the
     return value type, which is Int32.
*/
    public static void Main()
    {
        Type t = typeof(Example);
        MethodInfo mi = t.GetMethod("MyMethod");
        Type retval = mi.ReturnType;
        Console.WriteLine("Return value type ... {0}", retval);
        Type answer = Nullable.GetUnderlyingType(retval);
        Console.WriteLine("Underlying type ..... {0}", answer);
    }
}
/*
This code example produces the following results:

Return value type ... System.Nullable`1[System.Int32]
Underlying type ..... System.Int32

*/

Комментарии

Определение универсального типа — это объявление типа, например Nullable<T>, содержащее список параметров типа, а список параметров типа объявляет один или несколько параметров типа. Закрытый универсальный тип — это объявление типа, в котором для параметра типа указан определенный тип.

Например, если nullableType параметр является типом Nullable<Int32> C# (Nullable(Of Int32)в Visual Basic), возвращаемое значение является типом (то есть аргументом типа Int32 закрытого универсального типа).

Применяется к