2009-08-26 17 views
0

Visual Studioがコードをグレーアウトして冗長であると宣言すると、コンパイラはこのコードを無視するか、このコードをコンパイルしますか?言い換えれば、この冗長コードは決して解釈されないだろうか?それとも単にコードが必須ではないことを単に思い出させるものですか?冗長コード警告の意味

クラス/構造体などに冗長なコードを残しておけば、パフォーマンスに影響しますか?

おかげ

答えて

4

コードが冗長である場合、それはコンパイルするために必要ではないですが、中にそれを残すことは、パフォーマンスに与える影響はありません。

Visual Studioでコードが冗長であるとコンパイラが認識したため、コンパイラはILまたはマシンコードにコンパイルされません。

プロジェクトに冗長なコードを残すことはお勧めできません。将来コードが必要な場合は、ソースコードリポジトリの古いバージョンのファイルから取得する必要があります。

0

C#はインタープリット言語ではなく、実行時にMSILからコンパイルされたJITted(ジャストインタイムコンパイル)言語です。したがって、JITterは、コードが冗長であるかどうかを判断するための分析を行い、それを削除することができます。

Visual StudioでMSILのC#のコンパイル冗長なコードに

  1. を削除するには、2つの機会があります。
  2. 実行時(またはインストール時)にMSILをアセンブリにJITする。

C#コンパイラ自体がこの問題にフラグを立てているため、(1)でコードが削除される可能性があります。

ええ、それはちょうど良いとあなたを思い出させるだけです。ほとんどのコンパイラは、プログラマに知らせることなく、多くの異なる微妙な方法で冗長コードを削除しますが、明らかな特定のケースでは、プログラマに伝えることをお勧めします。

0

いいえ、コンパイルされていません。

テスト時にナットを駆動することがあり、デバッガの「次のステートメントを設定」コマンドを一部のステートメントに使用してコンパイルできませんでした。

関連する問題