(Transposition du même post en c#)
La méthode d'extension suivante permet de déterminer si un type est Nullable. Cela peut sembler facile à lire, mais je vous assure qu'il m'a fallu du temps pour trouver l'idée.
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Runtime.CompilerServices
Namespace Tools
Public NotInheritable Class TypeExtensions
Private Sub New()
End Sub
''' <summary>
''' Permet de déterminer si un Type est Nullable
''' </summary>
''' <param name="sender"></param>
''' <returns></returns>
<Extension()> _
Public Shared Function IsNullable(Byval sender As Type) As Boolean
Return sender.IsGenericType _
AndAlso sender.GetGenericTypeDefinition().Equals(GetType(Nullable(Of )))
End Function
End Class
End Namespace
Petite explication de texte, il s' agit d'une méthode d'extension qui cherche dans un premier temps si le type est générique (donc peut être un Nullable), et ensuite si la définition du type générique est Nullable(Of).