36

実行時に式をクイックウォッチすると、[クイック ウォッチ] ウィンドウに、その名前が現在のコンテキストに存在しないというエラーが表示されることがあります。同じことが即時ウィンドウにも当てはまります。ただし、評価しようとしている式は、コンパイル エラーをスローすることなく、クラスによって完全に認識されます。

たとえば、次のコード行を使用できます。

double x = Math.Pow(2,3);

この行にカーソルを置いて "Math.Pow(2,3)" の部分をクイックウォッチすると、エラーが発生し、"System" を配置する必要があります。私の表現の前に。先ほど言ったように、同じ式がコード ウィンドウでスムーズに実行されるため、エラーが参照している "コンテキスト" がどれかわかりません。

これらのデバッグ ウィンドウは、クラスで宣言された名前空間を参照しますが、プロジェクトによってインポートされた名前空間に対して同じことを行うことはできませんか?

4

2 に答える 2

5

私の理解では、クイックウォッチとイミディエイト ウィンドウは現在実行中のコンテキストでコード/式を実行しているため、コード内に が配置されると、クイックウォッチ ウィンドウでusing System; 問題が発生することはありません。Visual Studio のバグに遭遇した可能性があります。VisualStudio を再起動して、もう一度確認してください。

この種の問題に遭遇したことはありません。Math.Pow(2d, 4d);この種の問題は、このようなコードがあるときにクイック ウォッチを実行しようとすると発生します。System.Math.Pow(2d, 4d);

于 2012-03-24T09:08:42.047 に答える
5

解決:

program.cs ファイルに移動し、即時ウィンドウで使用する using を追加します。これは、コンソール アプリケーションと Windows フォーム アプリケーションの両方で機能します。

クラス ライブラリ プロジェクトのイミディエイト ウィンドウへの名前空間の参照

イミディエイト ウィンドウを「デザイン タイム」モードで使用していて、いくつかの名前空間を参照したい場合は、出力モードを Windows アプリケーションに設定し、何もしないプログラムを作成する必要があります。

  1. ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] をクリックします。
  2. [アプリケーション] で、[出力の種類] を Class-Library から Windows アプリケーションに変更します。
  3. 次のダミー クラスをプロジェクトに追加します。

Program.cs

using System;
//Add all the refrences you need immediate window to use here

namespace YourNamespace
{
    static class Program
    {
        static void Main()
        {

        }
    }
}
于 2014-01-02T14:10:56.330 に答える