这让我想知道为什么.NET中的Guid没有IsNullOrEmpty()方法(空的意思是全零)
在编写REST API时,我需要在ASP.NET MVC代码的几个地方使用它.
或者我错过了什么,因为互联网上没有人要求同样的东西?
Jon*_*eet 223
Guid是一个值类型,因此类型的变量Guid不能为空.如果你想知道它是否与空guid相同,你可以使用:
if (guid == Guid.Empty)
Run Code Online (Sandbox Code Playgroud)
Dav*_*und 25
一方面,Guid不可空.你可以查一下:
myGuid == default(Guid)
Run Code Online (Sandbox Code Playgroud)
这相当于:
myGuid == Guid.Empty
Run Code Online (Sandbox Code Playgroud)
这是一个可以为空的Guid的简单扩展方法.
/// <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);
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
如果你真的想在任何地方使用它,你可以为常规Guid编写另一种扩展方法.它永远不会是空的,所以有些人不会喜欢这个...但它符合您的目的而且您不必知道您是否正在使用Guid?或Guid(很适合重新分解等).
/// <summary>
/// Determines if Guid is Guid.Empty
/// </summary>
public static bool IsNullOrEmpty(this Guid guid)
{
return (guid == Guid.Empty);
}
Run Code Online (Sandbox Code Playgroud)
现在你可以someGuid.IsNullOrEmpty();在所有情况下使用,无论你使用的是Guid还是Guid?
就像我说的,有些人会抱怨命名,因为IsNullOrEmpty()暗示值可以为null(当它不能时).如果你真的想,拿出一个不同的名称,如扩展IsNothing()或IsInsignificant()或任何:)
| 归档时间: |
|
| 查看次数: |
76175 次 |
| 最近记录: |