Когда я сравниваю переменную DateTime с SqlDateTime.MinValue:Сравнивая DateTime с SqlDateTime.MinValue
if (StartDate > SqlDateTime.MinValue)
{
// some code
}
Я получаю следующее исключение во время выполнения, если StartDate является < SqlDateTime.MinValue:
переполнения SqlDateTime. Должно быть между 1/1/1753 12:00:00 и 31.12.19999 11:59:59 PM.
Это может быть легко решена с небольшим изменением:
if (StartDate > SqlDateTime.MinValue.Value)
{
// some code
}
Я понимаю, что в первом фрагменте кода я сравнивать яблоки с апельсинами. То, что я не понимаю, является сообщением об исключении. Кажется, я присваиваю значение DateTime переменной SqlDateTime.
Что мне не хватает?
Первое, если не выбрасывает исключение. https://dotnetfiddle.net/dBziSf – mybirthname
Я забыл указать, что это произошло, когда StartDate был ниже SqlDateTime.MinValue – Gnomo
Компилятор ищет способ сравнить два совершенно разных класса. Единственный способ, которым это может сделать, - использовать [перегрузку оператора] (https://referencesource.microsoft.com/#System.Data/System/Data/SQLTypes/SQLDateTime.cs,514), который предоставляет SqlDateTime. Но для этого требуется преобразовать DateTime в SqlDateTime. И это бросает. Выбранная вами альтернатива использует перегрузку оператора, предоставляемую DateTime. –