tutorial parameter multiple method generic constraint clase c# generics nullable

c# - parameter - Forma correcta de verificar si un tipo es Nullable



generics c# where constraint (2)

Absolutamente, usa Nullable.GetUnderlyingType :

if (Nullable.GetUnderlyingType(propertyType) != null) { // It''s nullable }

Tenga en cuenta que esto utiliza la clase estática no genérica System.Nullable lugar de la estructura genérica Nullable<T> .

También tenga en cuenta que eso verificará si representa un tipo de valor anulable específico (cerrado) ... no funcionará si lo usa en un tipo genérico , por ejemplo

public class Foo<T> where T : struct { public Nullable<T> Bar { get; set; } } Type propertyType = typeof(Foo<>).GetProperty("Bar").PropertyType; // propertyType is an *open* type...

Esta pregunta ya tiene una respuesta aquí:

Para verificar si un Type ( propertyType ) es anulable, estoy usando:

bool isNullable = "Nullable`1".Equals(propertyType.Name)

¿Hay alguna forma de evitar usar cadenas mágicas?