Подтвердить что ты не робот

Как мне ссылаться на пространство имен, которое будет использоваться в непосредственном или быстром режиме?

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Решение:

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

Разрешить пространства имен в непосредственное окно в проекте библиотеки классов

Если вы используете окно Immediate в режиме "Design Time" и хотите ссылаться на некоторые пространства имён, вам нужно установить режим вывода в приложение Windows и создать программу, которая ничего не делает.

  • Щелкните правой кнопкой мыши ваш проект в проводнике решений и выберите свойства
  • В разделе "Приложение" измените тип вывода: из библиотеки классов в приложение Windows
  • Добавьте в свой проект следующий макет-класс:

Program.cs

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

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

        }
    }
}