Вы получаете то же сообщение об ошибке, потому что для компилятора это та же проблема: он не может найти тип, на который вы ссылаетесь. Не зная, к какому типу вы пытаетесь обратиться, он не знает, пропустили ли вы директиву using
или ссылку - это ситуация с уловкой-22.
Как, по вашему мнению, компилятор должен знать, не может ли он найти тип, потому что вы пропустили директиву using
или потому что пропустили ссылку? Должен ли он просматривать каждый тип в каждом пространстве имен в каждой ссылке, чтобы вы знали, что у вас отсутствует директива using
? Это все еще может быть неверно, потому что вы можете иметь в виду совершенно другой тип в другом пространстве имен. (На самом деле, такие вещи, как Intellisense и ReSharper готовы предложить вам варианты - компилятор не может этого сделать).
Теперь, предполагая, вы знаете, какой тип вы имеете в виду, проблему легко решить, потому что вы можете проверить оба аспекта:
- Убедитесь, что у вас есть ссылка на соответствующую сборку
- Убедитесь, что у вас есть соответствующая директива
using
У вас есть вся необходимая информация, чтобы выяснить, в чем дело. Компилятор не имеет.
Конечно, если вы тоже не знаете, какой тип вы имеете в виду, то ожидать компилятора от этого довольно неразумно.