Убедитесь, что Nullable Guid пуст в С# - программирование

Убедитесь, что Nullable Guid пуст в С#

Цитата из ответа из этого вопроса.

Guid - тип значения, поэтому переменная типа Guid не может иметь значение null начните с.

Что тогда, если я это вижу?

public Nullable<System.Guid> SomeProperty { get; set; }

как проверить, является ли это null? Как это?

(SomeProperty == null)

или как это?

(SomeProperty == Guid.Empty)
4b9b3361

Ответ 1

SomeProperty.HasValue Я думаю, это то, что вы ищете.

EDIT: btw, вы можете написать System.Guid? вместо Nullable<System.Guid>;)

Ответ 2

Если вы хотите убедиться, что вам нужно проверить оба

SomeProperty == null || SomeProperty == Guid.Empty

Потому что это может быть null "Nullable", и это может быть пустой идентификатор GUID, подобный этому {00000000-0000-0000-0000-000000000000}

Ответ 3

Обратите внимание, что HasValue вернет true для пустого Guid.

bool validGuid = SomeProperty.HasValue && SomeProperty != Guid.Empty;

Ответ 4

Проверьте Nullable<T>.HasValue

if(!SomeProperty.HasValue ||SomeProperty.Value == Guid.Empty)
{
 //not valid GUID
}
else
{
 //Valid GUID
}

Ответ 5

Вы должны использовать свойство HasValue:

SomeProperty.HasValue

Например:

if (SomeProperty.HasValue)
{
    // Do Something
}
else
{
    // Do Something Else
}

FYI

public Nullable<System.Guid> SomeProperty { get; set; }

эквивалентно:

public System.Guid? SomeProperty { get; set; }

Ссылка на MSDN: http://msdn.microsoft.com/en-us/library/sksw8094.aspx