C # VS 2010 сообщает об ошибке при редактировании, но компилируется и успешно работает - PullRequest
3 голосов
/ 12 апреля 2011

У меня есть дополнительные параметры, сгенерированные CodeDom. Например:

class Square
{
    public Square([Optional()] int side) { }
}

У меня есть оператор вызова:

Square sq = new Square();

Во время редактирования в окне «Список ошибок» отображается: 'Квадрат' не содержит конструктор, который принимает 0 аргументов '

Но он компилируется и работает успешно. Как я могу избавиться от ошибки в окне «Список ошибок»? Спасибо!

1 Ответ

5 голосов
/ 12 апреля 2011

То, что вы видите, - это разница между живой семантической проверкой ошибок IDE и фактическим запуском компилятора. Живая семантическая проверка использует компилятор C #, но не имеет 100% -ной четности с ним, и может давать ложные срабатывания в угловых случаях языка.

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

  • Инструменты -> Параметры
  • Текстовый редактор -> C # -> Дополнительно
  • Снимите флажок «Показать живые семантические ошибки»

Еще один способ исправить это - использовать фактический синтаксис, поддерживаемый C #, для необязательных значений

public Square(int side = 0) { }
...