public static NotNull<T> ToNotNull<T>(this T value) where T: class => TryCreate(value, out var result) ? result : throw new ArgumentNullException();
public static NotNull<T> ToNotNull<T>(this T? value) where T : struct => TryCreate(value, out var result) ? result : throw new ArgumentNullException();
Для nullable компилятор не сможет определить правильную перегрузку.
И в чём же она, простите, заключается, эта иллюстрация? Я подозреваю, что CLI просто не даст создать два таких метода (и C# тут не виноват). Но быстро проверить не смог, не хватает пары определений.
Обсуждают сегодня