Вот простой метод расширения для Guid, допускающего значение 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);
}
ОБНОВИТЬ
Если вы действительно хотите использовать это везде, вы можете написать другой метод расширения для обычного Guid. Он никогда не может быть нулевым, поэтому некоторым это не понравится ... но он служит той цели, которую вы ищете, и вам не нужно знать, работаете ли вы с Guid? или Guid (удобно для рефакторинга и т. д.).
/// <summary>
/// Determines if Guid is Guid.Empty
/// </summary>
public static bool IsNullOrEmpty(this Guid guid)
{
return (guid == Guid.Empty);
}
Теперь вы можете использовать его someGuid.IsNullOrEmpty();
во всех случаях, используете ли вы Guid или Guid ?.
Как я уже сказал, некоторые люди будут жаловаться на именование, потому что IsNullOrEmpty()
подразумевает, что значение может быть нулевым (когда это невозможно). Если вы действительно хотите, придумать другое имя для расширения , например , IsNothing()
или , IsInsignificant()
или каким - то :)
Guid.Empty