代码是启发式无法访问的

问题描述 投票:43回答:3

与“检测到无法访问的代码”相比,这意味着什么?

c# resharper
3个回答
50
投票

启发式无法访问意味着可能无法访问的代码。无法访问的代码无法访问。


1
投票

假设您在单元测试中删除了2种不同类型的对象,并且您希望对这两种类型使用try / catch。

如果删除一个,然后检查是否成功,如果没有使用正确的强制转换:

Assert.IsNull(OBJ1);

“IsNull”可能始终为null,因为您错误地输入了obj1,或者使用obj1错误地在灰色代码上方执行了某些操作,下一个try / catch将显示为灰色。

尝试修复你正在尝试Assert.IsNull的东西,一旦它不总是null或未定义,灰色代码将是可达的。


1
投票

以下是Resharper给出神秘的“启发式无法访问代码”警告的示例:

enter image description here

这是一个例子:

  • Resharper是自己聪明的方式,因为如果你删除它,编译器会抱怨缺少return语句
  • 使用不常见词汇的单词
© www.soinside.com 2019 - 2024. All rights reserved.