Обзор библиотеки классов .NET

Интерфейсы API .NET содержат классы, интерфейсы, делегаты и типы значений, которые облегчают и оптимизируют процесс разработки, а также обеспечивают доступ к функциям системы. Для упрощения взаимодействия между языками большинство типов платформы .NET являются CLS-совместимыми, и поэтому их можно использовать в любом языке программирования, компилятор которого соответствует спецификации CLS.

Типы .NET представляют собой основу для создания элементов управления, компонентов и приложений .NET. .NET содержит типы, предназначенные для следующих задач:

  • представление базовых типов данных и исключений;
  • инкапсуляция структур данных;
  • операции ввода-вывода;
  • доступ к данным о загруженных типах;
  • вызов проверок безопасности .NET;
  • доступ к данным, предоставление графического пользовательского интерфейса на стороне клиента и управляемого сервером графического пользовательского интерфейса на стороне клиента.

.NET предлагает расширенный набор интерфейсов, а также абстрактных и конкретных (неабстрактных) классов. Можно использовать существующие конкретные классы "как есть". Кроме того, во многих случаях на их основе можно создавать собственные классы. Чтобы использовать возможности интерфейса, можно либо создать класс, реализующий интерфейс, либо создать производный класс на основе одного из классов .NET, реализующего интерфейс.

Соглашения об именах

Для типов платформы .NET используется схема именования через точку, описывающая иерархию. При таком подходе связанные типы группируются в пространства имен, что упрощает их поиск и создание ссылок. Первая часть полного имени ( вплоть до самой правой точки) — это имя пространства имен. Последняя часть имени — это имя типа. Например System.Collections.Generic.List<T> представляет тип List<T>, который принадлежит пространству имен System.Collections.Generic. Типы в System.Collections.Generic можно использовать для работы с универсальными коллекциями.

Такая схема именования упрощает разработчикам библиотек задачу расширения .NET с целью создания иерархических групп типов и присвоения им согласованных между собой и понятных имен. Она также позволяет однозначно идентифицировать типы по их полным именам (то есть по пространству имен и имени типа), что предотвращает конфликты имен типов. Ожидается, при именовании пространств имен разработчики библиотек будут руководствоваться следующим соглашением:

CompanyName.TechnologyName

Например, пространство имен Microsoft.Word соответствует этому правилу.

Использование шаблонов именования для группировки связанных типов в пространства имен полезно при создании и документировании библиотек классов. Однако такая схема именования не влияет на видимость, доступ к членам, наследование, безопасность и привязки. Пространство имен может быть разделено между несколькими сборками, и одна сборка может содержать типы из нескольких пространств имен. Сборка представляет собой формальную структуру для управления версиями, развертывания, обеспечения безопасности, загрузки и обеспечения видимости в среде CLR.

Дополнительные сведения о пространствах имен и именах типов см. в разделе Система общих типов CTS.

Пространство имен System

Пространство имен System является корневым пространством имен для основных типов в .NET. Это пространство имен включает классы, представляющие базовые типы данных, используемые всеми приложениями, например: Object (корень иерархии наследования), Byte, Char, Array, Int32 и String. Многие из этих типов соответствуют простым типам данных, которые используются в языке программирования. При написании кода с применением типов .NET можно использовать соответствующее ключевое слово языка для базового типа данных .NET.

В следующей таблице перечислены базовые типы, предоставляемые в .NET, кратко описывается каждый тип и указывается соответствующий тип в Visual Basic, C#, C++ и F#.

Категория Имя класса Description Тип данных Visual Basic Тип данных в C# Тип данных С++/CLI Тип данных F#
Целое Byte 8-разрядное целое число без знака. Byte byte unsigned char byte
SByte 8-разрядное число со знаком.

Не является CLS-совместимым.
SByte sbyte char или signed char sbyte
Int16 16-разрядное целое число со знаком. Short short short int16
Int32 32-разрядное целое число со знаком. Integer int int или long int
Int64 64-разрядное целое число со знаком. Long long __int64 int64
UInt16 16-разрядное целое число без знака.

Не является CLS-совместимым.
UShort ushort unsigned short uint16
UInt32 32-разрядное целое число без знака.

Не является CLS-совместимым.
UInteger uint unsigned int или unsigned long uint32
UInt64 64-разрядное целое число без знака.

Не является CLS-совместимым.
ULong ulong unsigned __int64 uint64
С плавающей запятой Half Число с плавающей запятой половинной точности (16-разрядное).
Single Число с плавающей запятой с обычной точностью (32-разрядное). Single float float float32 или single
Double Число с плавающей запятой с двойной точностью (64-разрядное). Double double double float или double
Логический Boolean Логическое значение (true или false). Boolean bool bool bool
Другие Char Символ Юникода (16-разрядный). Char char wchar_t char
Decimal 128-разрядное десятичное значение. Decimal decimal Decimal decimal
IntPtr Целое число со знаком, размер которого зависит от базовой платформы (32-разрядное значение при 32-разрядной платформе и 64-разрядное значение при 64-разрядной платформе). nint unativeint
UIntPtr Целое число без знака, размер которого зависит от базовой платформы (32-разрядное значение при 32-разрядной платформе и 64-разрядное значение при 64-разрядной платформе).

Не является CLS-совместимым.
nuint unativeint
Object Корень иерархии объектов. Object object Object^ obj
String Неизменяемая строка символов Юникода фиксированной длины. String string String^ string

В дополнение к базовым типам данных пространство имен System содержит более 100 классов — от классов для обработки исключений до классов, которые работают с основными механизмами среды выполнения, такими как домены приложений и сборщик мусора. Пространство имен System также содержит много пространств имен второго уровня.

Дополнительные сведения о пространствах имен см. в библиотеке классов .NET браузера .NET API. В справочной документации по API представлены документы по каждому пространству имен, его типам и каждому из элементов.

Структуры данных

.NET содержит набор структур данных, которые работаю практически во многих приложениях .NET. В основном это коллекции, но присутствуют и другие типы.

  • Array — представляет массив строго типизированных объектов, доступных по индексу. Имеет фиксированный размер, соответствующий конструкции.
  • List<T> — представляет строго типизированный список объектов, доступных по индексу. Его размер изменяется автоматически по мере надобности.
  • Dictionary<TKey,TValue> — представляет коллекцию значений, которые индексируются по ключу. Обратиться к значениям можно с помощью ключа. Его размер изменяется автоматически по мере надобности.
  • Uri — обеспечивает объектное представление универсального кода ресурсов (URI), а также простой доступ к его частям.
  • DateTime — представляет текущее время, обычно выраженное как дата и время суток.

Служебные API

.NET содержит набор служебных API, которые предоставляют функциональные возможности для множества важных задач.

  • HttpClient — API для отправки HTTP-запросов и получения HTTP-ответов от ресурса с заданным URI.
  • XDocument — API для загрузки и запрашивания XML-документов с помощью LINQ.
  • StreamReader — API для чтения файлов.
  • StreamWriter — API для записи файлов.

API модели приложений

Существует множество моделей приложений, которые можно использовать с .NET, например:

  • ASP.NET — веб-платформа для создания веб-сайтов и служб. Поддерживается в Windows, Linux и macOS (зависит от версии ASP.NET).
  • .NET MAUI — платформа приложений для создания собственных приложений, работающих в Windows, macOS, iOS и Android с помощью C#.
  • Windows Desktop — включает Windows Presentation Foundation (WPF) и Windows Forms.

См. также