В дополнение к принятому ответу, я хочу привести вам пример!
Например, мы все используем
System.Console.WriteLine()
Но где код для System.Console.WriteLine !? который является кодом, который фактически помещает текст в консоль?
Если вы посмотрите на первую страницу документации для класса консоли , вы увидите примерно следующее: Assembly: mscorlib (in mscorlib.dll) Это указывает что код для класса Console находится в сборке с именем mscorlib. Сборка может состоять из нескольких файлов, но в этом случае это только один файл, который является динамической библиотекой ссылок mscorlib.dll.
Файл mscorlib.dll очень важен в .NET. Это основная библиотека DLL для библиотек классов в .NET и содержит все основные классы и структуры .NET.
если вы знаете C или C ++, обычно вам нужна директива #include, которая ссылается на заголовочный файл. Включенный файл предоставляет прототипы функций компилятору. на контрасте Компилятор C # не нуждается в файлах заголовков. Во время компиляции компилятор C # напрямую обращается к файлу mscorlib.dll и получает информацию из метаданных в этом файле относительно всех классов и других типов, определенных в нем.
Компилятор C # может установить, что mscorlib.dll действительно содержит класс с именем Console в пространстве имен с именем System с методом с именем WriteLine, который принимает единственный аргумент строки типа.
Компилятор C # может определить, что вызов WriteLine действителен, и компилятор устанавливает ссылку на сборку mscorlib в исполняемом файле.
по умолчанию Компилятор C # будет обращаться к mscorlib.dll, но для других DLL вам нужно сообщить компилятору, в котором находятся классы. Они известны как ссылки.
Надеюсь, теперь это ясно!
От DotNetBookZero Чарльз Пицольд