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);
    }