Как мне сослаться на пространство имен, которое будет использоваться в немедленных или быстрых часах? - PullRequest
32 голосов
/ 21 марта 2012

Иногда, когда я выполняю быструю проверку выражения во время выполнения, в окне Quick Watch появляется сообщение об ошибке, говорящее о том, что имя не существует в текущем контексте. То же самое касается непосредственного окна. Однако выражение, которое я пытаюсь оценить, отлично распознается классом, без каких-либо ошибок компиляции.

Например, у меня может быть следующая строка кода:

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

Если я остановлю курсор на этой строке и быстро просмотрю часть «Math.Pow (2,3)», это выдаст мне ошибку, и мне нужно будет разместить «Систему». до моего выражения; как я уже сказал, одно и то же выражение работает гладко в окне кода, поэтому я не уверен, к какому «контексту» относится ошибка.

Может ли быть так, что эти окна отладки ссылаются на пространства имен, объявленные в классе, но не могут сделать то же самое для пространства имен, импортированного проектом?

Ответы [ 2 ]

4 голосов
/ 02 января 2014

Решение:

Перейдите в файл program.cs и добавьте значения, которые вы хотите использовать в своем непосредственном окне, это работает как для консольных приложений, так и для приложений Windows Forms

Пространства имен Refrence для непосредственного окна в проекте библиотеки классов

Если вы используете «Немедленное окно» в режиме «Время разработки» и хотите сослаться на него в некоторых пространствах имен, вам нужно установить выходной режим на Приложение Windows и создать программу, которая ничего не делает.

  1. Щелкните правой кнопкой мыши свой проект в обозревателе решений и выберите свойства
  2. В разделе «Приложение» измените тип вывода: с «Библиотека классов» на «Приложение 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()
        {

        }
    }
}
4 голосов
/ 24 марта 2012

В моем понимании окна QuickWatch и Immediate выполняют код / ​​выражения в текущем контексте выполнения, поэтому, если в коде есть using System;, окно QuickWatch не вызовет никаких проблем.Возможно, вы столкнулись с некоторой визуальной студийной ошибкой.Попробуйте перезапустить VisualStudio и проверить еще раз.

Я не сталкивался с такой проблемой.Эта проблема возникает при попытке быстрого просмотра Math.Pow(2d, 4d); при наличии кода, подобного этому System.Math.Pow(2d, 4d);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...