public static T ReadValue <T>(this T?nullableValue) where T : struct { XContract.Assert(nullableValue.HasValue, $"O valor não pode ser lido porque o {nameof(Nullable<T>)} era nulo."); return(nullableValue.Value); }