Aqui está um método de extensão simples para um Guid anulável.
/// <summary>
/// Determines if a nullable Guid (Guid?) is null or Guid.Empty
/// </summary>
public static bool IsNullOrEmpty(this Guid? guid)
{
return (!guid.HasValue || guid.Value == Guid.Empty);
}
ATUALIZAR
Se você realmente quiser usar isso em todos os lugares, poderá escrever outro método de extensão para um Guid regular. Nunca pode ser nulo, então algumas pessoas não vão gostar ... mas serve ao propósito que você está procurando e você não precisa saber se está trabalhando com o Guid? ou Guid (bom para refatoração etc.).
/// <summary>
/// Determines if Guid is Guid.Empty
/// </summary>
public static bool IsNullOrEmpty(this Guid guid)
{
return (guid == Guid.Empty);
}
Agora você pode usar someGuid.IsNullOrEmpty();
em todos os casos, esteja usando Guid ou Guid ?.
Como eu disse, algumas pessoas reclamarão da nomenclatura porque IsNullOrEmpty()
implica que o valor pode ser nulo (quando não pode). Se você realmente quiser, escolha um nome diferente para as extensões, como IsNothing()
ou IsInsignificant()
ou qualquer outra coisa :)
Guid.Empty