A continuación, se muestra un método de extensión simple para un Guid que acepta valores NULL.
/// <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);
}
ACTUALIZAR
Si realmente quisiera usar esto en todas partes, podría escribir otro método de extensión para un Guid normal. Nunca puede ser nulo, por lo que a algunas personas no les gustará esto ... pero cumple el propósito que estás buscando y no tienes que saber si estás trabajando con Guid. o Guid (bueno para refactorizar, etc.).
/// <summary>
/// Determines if Guid is Guid.Empty
/// </summary>
public static bool IsNullOrEmpty(this Guid guid)
{
return (guid == Guid.Empty);
}
Ahora puedes usarlo someGuid.IsNullOrEmpty();en todos los casos, ya sea que estés usando Guid o Guid ?.
Como dije, algunas personas se quejarán del nombre porque IsNullOrEmpty()implica que el valor podría ser nulo (cuando no puede). Si realmente quería, subir con un nombre diferente para las extensiones como IsNothing()o IsInsignificant()o lo que sea :)
Guid.Empty