什么是正确的检查:
Guid value;
// ...
if (value != Guid.Empty)
Run Code Online (Sandbox Code Playgroud)
要么
if (value != default(Guid))
Run Code Online (Sandbox Code Playgroud)
我认为第二个但无法解释原因.
slo*_*oth 28
因为Guid.Empty == default(Guid)它并不重要,但我更喜欢Guid.Empty可读性.
Guid.Empty相当于new Guid(),也相当于default(Guid).
当你反编译Guid结构时,似乎;
public static readonly Guid Empty = new Guid();
Run Code Online (Sandbox Code Playgroud)
由于Guid是struct,来自默认值表 ;
通过将所有值类型字段设置为其默认值并将所有引用类型字段设置为null来生成的值.
由于字段类型Guid是,short,int,byte,(这类型的默认值是0),当我们用default(Guid)我们得到了Guid与所有字段0.
Guid结构的只读实例,其值全为零.
当我们写这个代码;
Console.WriteLine(default(Guid));
Console.WriteLine(new Guid());
Run Code Online (Sandbox Code Playgroud)
输出;
00000000-0000-0000-0000-000000000000
00000000-0000-0000-0000-000000000000
Run Code Online (Sandbox Code Playgroud)
如果你关心可读性(我认为你应该这样)Guid.Empty对我来说似乎更好.
两者是一样的!
Guid.Empty是 Guid 的只读字段,值为{00000000-0000-0000-0000-000000000000}。
使用default(Guid)compile 创建一个常量值,具有{00000000-0000-0000-0000-000000000000}.
在这两种情况下,您的值都会与内存中某处的另一个值进行比较。
使用Guid.Empty以提高可读性。
在使用default(T)泛型时使用。
| 归档时间: |
|
| 查看次数: |
3644 次 |
| 最近记录: |