VS C # Express не работает должным образом - PullRequest
1 голос
/ 30 ноября 2011

У меня проблема, и я не знаю, что делать. Я использую Visual C # Express 2010, но иногда, когда я выполняю свой код (F5), отладчик прерывает в какой-то момент за исключением, иногда говорит «метод не реализован» или «исходный код недоступен». Затем IDE начинает делать странные вещи. Например, при пошаговой отладке курсор останавливается на пустых строках, и программа работает не так, как ожидалось. Поэтому, когда это происходит, мне нужно перезаписать весь проект предыдущей резервной копией. Как будто все проекты были испорчены.

Это изображение редактора: enter image description here

А это изображение во время выполнения: enter image description here

Я бы хотел знать, что происходит, и как ее решить, не загружая резервную копию.

Спасибо!

Ответы [ 3 ]

1 голос
/ 30 ноября 2011

Для любых изменений в коде я всегда советую сначала перестроить проект, а затем запустить программирование в режиме отладки или в прямом режиме. Изменения в файлах кода не отражаются, если решение не перестраивается.

Об ошибке: метод не реализован - Отображается, когда метод из абстрактного класса или интерфейса не реализован в классе Dervied.

нет исходного кода . Это может быть из-за отсутствия сборки. Попробуйте восстановить, он не должен прийти снова

0 голосов
/ 12 июля 2012

Ну, единственное решение - отформатировать мой компьютер и переустановить Windows.После этого переустановите VS и проблем больше не будет.

0 голосов
/ 01 декабря 2011

Чтобы убедиться, что вы перестраиваете свой проект, я бы удалил выходной каталог (обычно эта папка называется Debug или Release и содержит файлы exe и pdb) и посмотрел, имеет ли это значение.Может быть, вы думаете, что перестраиваете, но это не так.

Кроме того, когда вы запускаете свой проект, убедитесь, что вы используете ту же конфигурацию, что и вы.Если вы создаете Release, но запускаете Debug, сгенерированный код не будет совпадать, даже если файлы обновлены.

Перейти к выходному пути можно, перейдя на страницу свойств проекта, вкладку Build инажав кнопку Обзор пути вывода:

enter image description here

Помните, что если вы явно не определили интерфейс, это не означает, что ваша программа не использует интерфейсы.Код, который вы используете, может уже реализовывать интерфейсы с кодом по умолчанию, который должен быть переопределен в вашем коде.

Как и другие предлагали, я бы искал строку NotImplementedException, просто чтобыубедитесь, что вы случайно не генерируете это исключение где-то в своем коде.

Кроме того, я бы изменил код, чтобы перехватить исключение, чтобы вы могли подняться в стек и определить, куда его выкидывает:

for (int i = 1; i <= 4; i++)
{
    try
    {
        MyDevice.SetGpo(i, false);
    }
    catch (NotImplementedException ex)
    {
        Console.WriteLine(ex.Message); // set your breakpoint here
        throw ex;
    }
}
...