Пространство имен — это группа семантически родственных типов, которые содержатся в одной или нескольких связанных друг с другом сборках. Например, пространство имен System.IO
содержит типы, относящиеся к файловому вводу-выводу, пространство имен System.Data
— типы для работы с базами данных и т.д. Важно понимать, что одна сборка может содержать любое количество пространств имен, каждое из которых может иметь любое число типов.
Основное отличие между таким подходом и специфичной для языка библиотекой заключается в том, что любой язык, ориентированный на исполняющую среду .NET Core, использует
// Приложение "Hello World" на языке С #.
using System;
public class MyApp
{
static void Main
{
Console.WriteLine("Hi from C#");
}
}
' Приложение "Hello World" на языке VB.
Imports System
Public Module MyApp
Sub Main
Console.WriteLine("Hi from VB")
End Sub
End Module
Обратите внимание, что во всех языках применяется класс Console
, определенный в пространстве имен System
. Помимо очевидных синтаксических различий представленные приложения выглядят довольно похожими как физически, так и логически.
Понятно, что после освоения выбранного языка программирования для .NET Core вашей следующей целью как разработчика будет освоение изобилия типов, определенных в многочисленных пространствах имен .NET Core. Наиболее фундаментальное пространство имен, с которого нужно начать, называется System
. Оно предлагает основной набор типов, которые вам как разработчику в .NET Core придется задействовать неоднократно. Фактически без добавления, по крайней мере, ссылки на пространство имен System
построить сколько-нибудь функциональное приложение C# невозможно, т.к. в System
определены основные типы данных (например, System.Int32
и System.String
). В табл. 1.3 приведены краткие описания некоторых (конечно же, не всех) пространств имен .NET Core, сгруппированные по функциональности.
Доступ к пространству имен программным образом
Полезно снова повторить, что пространство имен — всего лишь удобный способ логической организации связанных типов, содействующий их пониманию. Давайте еще раз обратимся к пространству имен System
. С точки зрения разработчика можно предположить, что конструкция System.Console
представляет класс по имени Console
, который содержится внутри пространства имен под названием System
. Однако с точки зрения исполняющей среды .NET Core это не так. Исполняющая среда видит только одиночный класс по имени System.Console
.
В языке C# ключевое слово using
упрощает процесс ссылки на типы, определенные в отдельном пространстве имен. Давайте посмотрим, каким образом оно работает. В приведенном ранее примере Calc
в начале файла находится единственный оператор using
:
using System;
Он делает возможной следующую строку кода:
Console.WriteLine ("10 + 84 is {0}." , ans);
Без оператора using
пришлось бы записывать так:
System.Console.WriteLine ("10 + 84 is {0}.", ans);
Хотя определение типа с использованием полностью заданного имени позволяет делать код более читабельным, трудно не согласиться с тем, что применение ключевого слова using
в C# значительно сокращает объем набора на клавиатуре. В настоящей книге полностью заданные имена в основном использоваться не будут (разве что для устранения установленной неоднозначности), а предпочтение отдается упрощенному подходу с применением ключевого слова using
.
Однако не забывайте о том, что ключевое слово using
— просто сокращенный способ указать полностью заданное имя типа. Любой из подходов дает в результате тот же самый код CIL (учитывая, что в коде CIL всегда используются полностью заданные имена) и не влияет ни на производительность, ни на размер сборки.
Ссылка на внешние сборки
В предшествующих версиях .NET Framework для установки библиотек инфраструктуры применялось общее местоположение, известное как с:\Program Files\dotnet
.
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT