Обзор библиотеки классов .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.