Книга: C# для профессионалов. Том II

Инструкции #include

Инструкции #include

Версия C++ 'Hello World!' начинается с пары директив препроцессора для включения некоторых заголовочных файлов.

#include <iostream>
#include <Windows.h>

Они отсутствуют в версии C#, что иллюстрирует важный момент относительно того, как C# обращается к библиотекам. В C++ необходимо включать заголовочные файлы, чтобы компилятор смог распознать соответствующие символы в коде. Необходимо отдельно проинструктировать редактор связей для ссылки на библиотеки, что достигается с помощью параметров командной строки, передаваемых редактору. C# на самом деле не разделяет компиляцию и редактирование связей таким образом, как это делает C++. В C# все реализуется через параметры командной строки (и только тогда, когда происходит обращение к чему-то вне базовой библиотеки). Параметры позволят компилятору найти все определения классов, поэтому явные ссылки в исходном коде не нужны. Это в действительности значительно более простой способ, и после привыкания к модели C# версия C++, где все необходимо указывать дважды, начнет выглядеть достаточно странной и громоздкой.

Еще момент, который необходимо отметить, состоит в том, что из двух инструкций #include в приведенном выше коде C++, первая обращается к стандартной библиотеке ANSI (часть iostream стандартной библиотеки). Вторая к специальной библиотеке Windows и используется для того, чтобы можно было вывести окно сообщения. Код C++ под Windows часто должен обращаться к API Windows, так как стандарт ANSI не имеет никаких средств создания окон. В противоположность этому базовые классы .NET — эквивалент C# стандартной библиотеки шаблонов ANSI — включает средства создания окон, и здесь используются только базовые классы .NET. Код C# в данном случае не требует никаких нестандартных средств. (Хотя и спорная, эта точка зрения уравновешивается тем фактом, что 'стандарт' C# в настоящее время доступен только в Windows.)

Приведенный выше код C# оказался не содержащим никакой директивы #include, но это не значит, что любые препроцессорные директивы (даже и не #include) недоступны в C#, и не сохраняется синтаксис #.

Оглавление книги


Генерация: 4.214. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз