Nullable.GetUnderlyingType Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Returns the underlying type argument of the specified nullable type.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- nullableType
- Type: System.Type
A Type object that describes a closed generic nullable type.
Return Value
Type: System.TypeThe type argument of the nullableType parameter, if the nullableType parameter is a closed generic nullable type; otherwise, Nothing.
| Exception | Condition |
|---|---|
| ArgumentNullException | nullableType is Nothing. |
A generic type definition is a type declaration, such as Nullable(Of T), that contains a type parameter list, and the type parameter list declares one or more type parameters. A closed generic type is a type declaration where a particular type is specified for a type parameter.
For example, if the nullableType parameter is the type of Nullable<Int32> in C# (Nullable(Of Int32) in Visual Basic), the return value is the type of Int32 (that is, the type argument of the closed generic type).
The following code example defines a method whose return value is of type Nullable(Of T) of Int32. The code example uses the GetUnderlyingType method to display the type argument of the return value.
' This code example demonstrates the ' Nullable.GetUnderlyingType() method. Imports System.Reflection Class Example ' 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 Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) Dim t As Type = GetType(Example) Dim mi As MethodInfo = t.GetMethod("MyMethod") Dim retval As Type = mi.ReturnType outputBlock.Text += String.Format("Return value type ... {0}", retval) & vbCrLf Dim answer As Type = Nullable.GetUnderlyingType(retval) outputBlock.Text += String.Format("Underlying type ..... {0}", answer) & vbCrLf End Sub 'Main End Class 'Sample ' 'This code example produces the following results: ' 'Return value type ... System.Nullable`1[System.Int32] 'Underlying type ..... System.Int32 '