我有以下代码:
Debug.Assert(model.OrganizationId != null, "model.OrganizationId != null");
var orgId = model.OrganizationId.Value;
然而Debug.Assert
行显示为灰色,当我将鼠标悬停在它上面时,我收到消息:
跳过方法调用。编译器不会生成方法 调用因为方法是有条件的,或者是没有的部分方法 实施
我的IDE处于Debug
模式,我看到没有其他异常。为什么要断言这个断言?我并不太关心OrganizationId
是否为null,因为它在模型上标记为Required
,但我担心会跳过非常正常的Debug.Assert
。
答案 0 :(得分:3)
Debug.Assert标有此属性。
[System.Diagnostics.Conditional("DEBUG")]
这意味着当您在项目配置中定义了“DEBUG”常量时,将编译此方法。
请注意,这与发布或调试构建模式无关。但默认情况下,调试配置已定义“DEBUG”常量。
为了解决这个问题,请转到你的项目设置,构建部分,确保配置设置为Debug。然后勾选“定义DEBUG常量”选项。