Подтвердить что ты не робот

Непосредственное окно - кастинг в формате datetime? исключает исключение, но (datetime) не

Взято непосредственно из окна:

reader["DateDue"] as DateTime? дает:

'reader["DateDue"] as DateTime?' threw an exception of type 'System.NullReferenceException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2147467261
HelpLink: null
InnerException: null
Message: "Object reference not set to an instance of an object."
Source: null
StackTrace: null
TargetSite: null

(DateTime?)reader["DateDue"] дает:

{1/26/2015 12:00:00 AM}
Date: {1/26/2015 12:00:00 AM}
Day: 26
DayOfWeek: Monday
DayOfYear: 26
Hour: 0
Kind: Unspecified
Millisecond: 0
Minute: 0
Month: 1
Second: 0
Ticks: 635578272000000000
TimeOfDay: {System.TimeSpan}
Year: 2015

и для справки reader["DateDue"] дает:

{1/26/2015 12:00:00 AM}
Date: {1/26/2015 12:00:00 AM}
Day: 26
DayOfWeek: Monday
DayOfYear: 26
Hour: 0
Kind: Unspecified
Millisecond: 0
Minute: 0
Month: 1
Second: 0
Ticks: 635578272000000000
TimeOfDay: {00:00:00}
Year: 2015

Это ошибка? Если выполняется непосредственное кастинг на DateTime?, то работа с as DateTime? тоже должна работать.

Я нашел работу для этого, используя reader.GetDateTime(reader.GetOrdinal("DateDue")) as DateTime?. Nevermind, который отлично не обрабатывает нули. Во всяком случае, существует множество способов бумаги вокруг этой странности.

Репо, демонстрирующее проблему, можно найти здесь: https://github.com/jjoedouglas/exceptionAsDatetime

4b9b3361

Ответ 1

Это кажется ошибкой в ​​непосредственном окне VS2015.