web-dev-qa-db-ja.com

コードはヒューリスティックに到達できません

「到達不能コードが検出された」とは対照的に、これはどういう意味ですか?

44
bevacqua

ヒューリスティックに到達不能とは、到達不能コードの可能性があることを意味します。到達不能コードは確かに到達不能です。

51
Adrian Marinica

これは、Resharperが不可解な「ヒューリスティックに到達不能コード」の警告を出す例です。

enter image description here

これは次の例です。

  • Resharperは、それ自体を賢くする方法です。Resharperを削除すると、コンパイラはreturnステートメントがないことについて文句を言うからです。
  • 一般的ではない単語の使用レキシコン
2
Ben Power

単体テストで2種類のオブジェクトを削除していて、両方の種類にtry/catchを使用するとします。

1つを削除してから、次を使用して適切にキャストせずに成功したかどうかを確認します。

Assert.IsNull(obj1);

Obj1を誤ってキャストしたか、グレーアウトされたコードの上でobj1を使用して誤って何かを行ったため、「IsNull」は常にnullになる可能性があります。

Assert.IsNullを修正しようとすると、常にnullまたは未定義であるとは限らない場合、グレー表示されたコードに到達できるようになります。

1
whyoz