Ответ
Ошибка компиляции (Compile-time error) — это ошибка, которую обнаруживает и сообщает компилятор C# (например, Roslyn) до создания исполняемого файла (.exe или .dll). Программа с такими ошибками не может быть собрана и запущена. Это контрастирует с ошибками времени выполнения (Runtime exceptions), которые возникают уже при работе скомпилированной программы.
Ошибки компиляции возникают из-за нарушения правил языка C# и делятся на основные категории:
-
Синтаксические ошибки: Нарушение базового синтаксиса языка.
int x = 10 // CS1002: Ожидается ; if (true) { // CS1513: Ожидается } -
Семантические ошибки: Код синтаксически корректен, но не имеет смысла в контексте системы типов C#.
string text = 42; // CS0029: Не удается неявно преобразовать тип 'int' в 'string' int y = "hello"; // Аналогичная ошибка несоответствия типов -
Ошибки неопределенности: Использование необъявленных идентификаторов.
Console.WriteLine(unknownVariable); // CS0103: Имя 'unknownVariable' не существует в текущем контексте -
Ошибки доступа: Нарушение правил доступности членов класса (private, protected, etc.).
class MyClass { private int _field; } // ... в другом месте var obj = new MyClass(); int value = obj._field; // CS0122: Поле 'MyClass._field' недоступно из-за его уровня защиты
Почему это важно: Компилятор выступает в роли первого и самого строгого тестировщика. Его ошибки с четкими кодами (например, CS0168) и указанием строки позволяют быстро находить и исправлять проблемы на самом раннем этапе, гарантируя, что в собранную программу не попадет заведомо некорректный код.