Вывод из непосредственного окна VS
default(Guid?)
=> null
(Guid?)null == default
=> true
(Guid?)null ?? default
=> {00000000-0000-0000-0000-000000000000}
Я ожидал, что последним будет null
, а не Guid.Empty
. Так почему это так?
Вывод из непосредственного окна VS
default(Guid?)
=> null
(Guid?)null == default
=> true
(Guid?)null ?? default
=> {00000000-0000-0000-0000-000000000000}
Я ожидал, что последним будет null
, а не Guid.Empty
. Так почему это так?
(Guid?)null
имеет значение null, поэтому вы получаете правую часть??
.default(Guid)
равноGuid.Empty
. - person GSerg   schedule 23.02.2021Guid? toCheck = null
делай какие-нибудь причудливые вещи, может быть, установлен на Проверку или нет, а позже я проверяюvar result = toCheck ?? default;
, я бы не ожидал, что результат будет Guid.Empty - person Michael Prüfer   schedule 23.02.2021var g1 = (Guid?)null; var g2 = g1 ?? default;
вы можете заметить, что предполагаемый типGuid?
дляg1
иGuid
дляg2
. Изменив последнее значение наvar g2 = g1 ?? default(Guid?);
, вы можете сделатьg2
такжеGuid?
. - person GSerg   schedule 23.02.2021