В чем разница между «синтаксической ошибкой» и «ошибкой компилятора», как это видит Visual Studio? Или, по-другому, почему некоторые ошибки «времени компиляции» подчеркнуты красным волнистыми линиями, а некоторые с синими волнистыми линиями? Вот пример:Ошибка синтаксиса в сравнении с ошибкой компилятора в Visual Studio или красная волнистая подчеркивание против синего волнистого подчеркивания
красная подчеркнуты ошибка выше имеет такое описание:
No overload for method 'ValidateFilteredRecipient' takes 6 arguments
Синий подчеркнутый ошибка это описание:
'ValidateBuild': cannot declare instance members in a static class
Это не для меня ясно, каковы отличительные характеристики двух ошибок.
Я думал, что найти ответ будет кусок пирога: я бы просто сказал ему, и первым результатом будет страница MSDN, полностью излагающая эту тему; однако, очень удивительно, это было не так. Я начал, пытаясь Google цвета (так как я еще не знаю, красный означает «ошибка синтаксиса» и синий означает «ошибка компилятора»):
visual studio red underline vs. blue underline
Нет помощи там. Тогда я попробовал эти поиски:
visual studio error underline color meanings
visual studio underline color meanings
я мог видеть, что это не идет в никуда, так что я гугле немного больше и понял, где цвета были установлены в VS: Tools> Options> Окружающая среда> Шрифты и цвета. Кстати, невозможность поиска огромного списка здесь крайне раздражает, но я понял, что «синтаксические ошибки» имеют красную волнистую подчеркивание, а «ошибки компилятора» имеют синюю волнистую подчеркивание.
Так что же означают эти? Вернуться к Google:
visual studio compiler error vs. syntax error
Ничего актуальна. Вот ближе, я нашел, из MSDN:
Fonts and Colors, Environment, Options Dialog Box
Эта страница содержит следующие данные:
Compiler Error -- Blue squiggles in the editor indicating a compiler error.
и
Syntax Error -- Parse errors.
Не совсем полезно - акцент на " вообще".Я всегда думал, что я знал, что такое «ошибка синтаксиса» был, по крайней мере, и Wikipedia соглашается:
a syntax error is an error in the syntax of a sequence of characters or tokens that is intended to be written in a particular programming language.
Кроме того, here is what what it has for syntax:
the syntax of a computer language is the set of rules that defines the combinations of symbols that are considered to be a correctly structured document or fragment in that language.
Итак, возвращаясь к моему «ошибка синтаксиса» от выше:
No overload for method 'ValidateFilteredRecipient' takes 6 arguments
Как это синтаксическая ошибка в определении, которое я здесь включил? На самом деле, на мой взгляд, «ошибка компилятора» я получил более-близко соответствует это определение синтаксической ошибки:
'ValidateBuild': cannot declare instance members in a static class
Может кто-то пожалуйста, помогите мне понять это?
@AlfieGoodacre - "то, что вы не можете сделать, или компилятор не позволит вам" <--- a.k.a. "что-то, что вы сделали неправильно". –
Неохотно продвигаться по вопросу, который очень хорошо сочетается, но и немного лохматой истории собаки, когда я понял, что именно вы изучаете в глубине. Красные волнистые линии, синие волнистые линии, разве мы все не можем поладить? –
@JeroenMostert - я полностью понимаю. Но разве это не ошибка? Я имею в виду, что это коммерческая IDE на уровне предприятия .... Ради решения головоломки, по крайней мере ... почему они не только один тип ошибки? И почему они не документированы? –