在编译使用代码契约的代码时,我有一个非常奇怪的错误,我不明白。
[ContractInvariantMethod]
private void ObjectInvariant()
{
Contract.Invariant(
this.isSubsidiary ||
this.parentCompanyId == default(Guid));
}
失败并出现以下错误:
格式错误的合同。在方法 '<ProjectName>.ObjectInvariant' 中分配后发现 Invariant。
如果代码被这样修改:
[ContractInvariantMethod]
private void ObjectInvariant()
{
Contract.Invariant(
this.isSubsidiary ||
this.parentCompanyId == Guid.Empty);
// Noticed the Guid.Empty instead of default(Guid)?
}
它编译得很好。
我的怎么了default(Guid)
?