Nullable.GetUnderlyingType(Type) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve o argumento do tipo subjacente do tipo nulo especificado.
public:
static Type ^ GetUnderlyingType(Type ^ nullableType);
public static Type GetUnderlyingType(Type nullableType);
public static Type? GetUnderlyingType(Type nullableType);
static member GetUnderlyingType : Type -> Type
Public Shared Function GetUnderlyingType (nullableType As Type) As Type
Parâmetros
Devoluções
O argumento do tipo do nullableType parâmetro, se o nullableType parâmetro for um tipo genérico fechado e nulo; caso contrário, null.
Exceções
nullableType é null.
Exemplos
O seguinte exemplo de código define um método cujo valor de retorno é do tipo Nullable<T> de Int32. O exemplo de código usa o GetUnderlyingType método para mostrar o argumento de tipo do valor de retorno.
// 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
*/
// This code example demonstrates the
// Nullable.GetUnderlyingType() method.
open System
// Declare a type named Example.
// The MyMethod member of Example returns a Nullable of Int32.
type Example() =
member _.MyMethod() =
Nullable 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.
*)
let t = typeof<Example>
let mi = t.GetMethod "MyMethod"
let retval = mi.ReturnType
printfn $"Return value type ... {retval}"
let answer = Nullable.GetUnderlyingType retval
printfn $"Underlying type ..... {answer}"
// This code example produces the following results:
// Return value type ... System.Nullable`1[System.Int32]
// Underlying type ..... System.Int32
' This code example demonstrates the
' Nullable.GetUnderlyingType() method.
Imports System.Reflection
Class Sample
' Declare a type named Example.
' The MyMethod member of Example returns a Nullable of Int32.
Public Class Example
Public Function MyMethod() As Nullable(Of Integer)
Return 0
End Function
End Class
'
' 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 Shared Sub Main()
Dim t As Type = GetType(Example)
Dim mi As MethodInfo = t.GetMethod("MyMethod")
Dim retval As Type = mi.ReturnType
Console.WriteLine("Return value type ... {0}", retval)
Dim answer As Type = Nullable.GetUnderlyingType(retval)
Console.WriteLine("Underlying type ..... {0}", answer)
End Sub
End Class
'
'This code example produces the following results:
'
'Return value type ... System.Nullable`1[System.Int32]
'Underlying type ..... System.Int32
'
Observações
Uma definição genérica de tipo é uma declaração de tipo, como Nullable<T>, que contém uma lista de parâmetros de tipo, e a lista de parâmetros de tipo declara um ou mais parâmetros de tipo. Um tipo genérico fechado é uma declaração de tipo onde um tipo particular é especificado para um parâmetro de tipo.
Por exemplo, se o parâmetro nullableType for o tipo de Nullable<Int32> em C# (Nullable(Of Int32) em Visual Basic), o valor de retorno é o tipo de Int32 (ou seja, o argumento de tipo do tipo genérico fechado).