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

Реализации .NET содержат классы, интерфейсы, делегаты и типы значений, которые облегчают и оптимизируют процесс разработки, а также обеспечивают доступ к функциям системы..NET implementations include classes, interfaces, delegates, and value types that expedite and optimize the development process and provide access to system functionality. Для упрощения взаимодействия между языками большинство типов платформы .NET являются CLS-совместимыми, и поэтому их можно использовать в любом языке программирования, компилятор которого соответствует спецификации CLS.To facilitate interoperability between languages, most .NET types are CLS-compliant and can therefore be used from any programming language whose compiler conforms to the common language specification (CLS).

Типы .NET представляют собой основу для создания элементов управления, компонентов и приложений .NET..NET types are the foundation on which .NET applications, components, and controls are built. Реализации .NET содержат типы, предназначенные для следующих задач:.NET implementations include types that perform the following functions:

  • представление базовых типов данных и исключений;Represent base data types and exceptions.

  • инкапсуляция структур данных;Encapsulate data structures.

  • операции ввода-вывода;Perform I/O.

  • доступ к данным о загруженных типах;Access information about loaded types.

  • вызов проверок безопасности .NET Framework;Invoke .NET Framework security checks.

  • доступ к данным, предоставление графического пользовательского интерфейса на стороне клиента и управляемого сервером графического пользовательского интерфейса на стороне клиента.Provide data access, rich client-side GUI, and server-controlled, client-side GUI.

.NET предлагает расширенный набор интерфейсов, а также абстрактных и конкретных (неабстрактных) классов..NET provides a rich set of interfaces, as well as abstract and concrete (non-abstract) classes. Можно использовать существующие конкретные классы, кроме того, во многих случаях на их основе можно создавать собственные производные классы.You can use the concrete classes as is or, in many cases, derive your own classes from them. Чтобы использовать возможности интерфейса, можно либо создать класс, реализующий интерфейс, либо создать производный класс на основе одного из классов .NET, реализующего интерфейс.To use the functionality of an interface, you can either create a class that implements the interface or derive a class from one of the .NET classes that implements the interface.

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

Для типов платформы .NET используется схема именования через точку, описывающая иерархию..NET types use a dot syntax naming scheme that connotes a hierarchy. При таком подходе связанные типы группируются в пространства имен, что упрощает их поиск и создание ссылок.This technique groups related types into namespaces so they can be searched and referenced more easily. Первая часть полного имени — до крайней правой точки — это имя пространства имен.The first part of the full name — up to the rightmost dot — is the namespace name. Последняя часть имени — это имя типа.The last part of the name is the type name. Например System.Collections.Generic.List<T> представляет тип List<T>, который принадлежит пространству имен System.Collections.Generic.For example, System.Collections.Generic.List<T> represents the List<T> type, which belongs to the System.Collections.Generic namespace. Типы в System.Collections.Generic можно использовать для работы с универсальными коллекциями.The types in System.Collections.Generic can be used to work with generic collections.

Такая схема именования упрощает разработчикам библиотек задачу расширения .NET Framework с целью создания иерархических групп типов и присвоения им согласованных между собой и понятных имен.This naming scheme makes it easy for library developers extending the .NET Framework to create hierarchical groups of types and name them in a consistent, informative manner. Она также позволяет однозначно идентифицировать типы по их полным именам (то есть по пространству имен и имени типа), что предотвращает конфликты имен типов.It also allows types to be unambiguously identified by their full name (that is, by their namespace and type name), which prevents type name collisions. Ожидается, при именовании пространств имен разработчики библиотек будут руководствоваться следующим соглашением:Library developers are expected to use the following convention when creating names for their namespaces:

CompanyName.TechnologyNameCompanyName.TechnologyName

Например, пространство имен Microsoft.Word соответствует этому правилу.For example, the namespace Microsoft.Word conforms to this guideline.

Использование шаблонов именования для группировки связанных типов в пространства имен очень полезно при создании и документировании библиотек классов.The use of naming patterns to group related types into namespaces is a very useful way to build and document class libraries. Однако такая схема именования не влияет на видимость, доступ к членам, наследование, безопасность и привязки.However, this naming scheme has no effect on visibility, member access, inheritance, security, or binding. Пространство имен может быть разделено между несколькими сборками, и одна сборка может содержать типы из нескольких пространств имен.A namespace can be partitioned across multiple assemblies and a single assembly can contain types from multiple namespaces. Сборка представляет собой формальную структуру для управления версиями, развертывания, обеспечения безопасности, загрузки и обеспечения видимости в среде CLR.The assembly provides the formal structure for versioning, deployment, security, loading, and visibility in the common language runtime.

Дополнительные сведения о пространствах имен и именах типов см. в разделе Система общих типов CTS.For more information on namespaces and type names, see Common Type System.

Пространство имен SystemSystem namespace

Пространство имен System является корневым пространством имен для основных типов в .NET.The System namespace is the root namespace for fundamental types in .NET. Это пространство имен включает классы, представляющие собой базовые типы данных, используемые всеми приложениями: Object (корень иерархии наследования), Byte, Char, Array, Int32, String и т. д.This namespace includes classes that represent the base data types used by all applications: Object (the root of the inheritance hierarchy), Byte, Char, Array, Int32, String, and so on. Многие из этих типов соответствуют простым типам данных, которые используются в языке программирования.Many of these types correspond to the primitive data types that your programming language uses. При написании кода с применением типов .NET Framework можно использовать соответствующее ключевое слово языка для базового типа данных .NET Framework.When you write code using .NET Framework types, you can use your language's corresponding keyword when a .NET Framework base data type is expected.

В следующей таблице перечислены базовые типы, предоставляемые в .NET, кратко описывается каждый тип и указывается соответствующий тип в Visual Basic, C#, C++ и F#.The following table lists the base types that .NET supplies, briefly describes each type, and indicates the corresponding type in Visual Basic, C#, C++, and F#.

КатегорияCategory Имя классаClass name ОПИСАНИЕDescription Тип данных в Visual BasicVisual Basic data type Тип данных в C#C# data type Тип данных С++/CLIC++/CLI data type Тип данных F#F# data type
Целое числоInteger Byte 8-разрядное целое число без знака.An 8-bit unsigned integer. ByteByte bytebyte unsigned charunsigned char bytebyte
SByte 8-битовое целое число со знаком.An 8-bit signed integer.

Не является CLS-совместимым.Not CLS-compliant.
SByteSByte sbytesbyte charchar
-или--or-
signed charsigned char
sbytesbyte
Int16 16-разрядное знаковое целое число.A 16-bit signed integer. ShortShort shortshort shortshort int16int16
Int32 32-разрядное знаковое целое число.A 32-bit signed integer. IntegerInteger intint intint

-или--or-

longlong
intint
Int64 64-разрядное целое число со знаком.A 64-bit signed integer. LongLong longlong __int64__int64 int64int64
UInt16 16-разрядное целое число без знака.A 16-bit unsigned integer.

Не является CLS-совместимым.Not CLS-compliant.
UShortUShort ushortushort unsigned shortunsigned short uint16uint16
UInt32 32-разрядное целое число без знака.A 32-bit unsigned integer.

Не является CLS-совместимым.Not CLS-compliant.
UIntegerUInteger uintuint unsigned intunsigned int
-или--or-
unsigned longunsigned long
uint32uint32
UInt64 64-разрядное целое число без знака.A 64-bit unsigned integer.

Не является CLS-совместимым.Not CLS-compliant.
ULongULong ulongulong unsigned __int64unsigned __int64 uint64uint64
С плавающей запятойFloating point Single Число с плавающей запятой с обычной точностью (32-разрядное).A single-precision (32-bit) floating-point number. SingleSingle floatfloat floatfloat float32float32
илиor
singlesingle
Double Число с плавающей запятой с двойной точностью (64-разрядное).A double-precision (64-bit) floating-point number. DoubleDouble doubledouble doubledouble floatfloat
илиor
doubledouble
LogicalLogical Boolean Логическое значение (true или false).A Boolean value (true or false). BooleanBoolean boolbool boolbool boolbool
ДругойOther Char Символ Юникода (16-разрядный).A Unicode (16-bit) character. CharChar charchar wchar_twchar_t charchar
Decimal 128-разрядное десятичное значение.A decimal (128-bit) value. DecimalDecimal decimaldecimal DecimalDecimal decimaldecimal
IntPtr Целое число со знаком, размер которого зависит от базовой платформы (32-разрядное значение при 32-разрядной платформе и 64-разрядное значение при 64-разрядной платформе).A signed integer whose size depends on the underlying platform (a 32-bit value on a 32-bit platform and a 64-bit value on a 64-bit platform). IntPtrIntPtr

Не является встроенным типом.No built-in type.
IntPtrIntPtr

Не является встроенным типом.No built-in type.
IntPtrIntPtr

Не является встроенным типом.No built-in type.
unativeintunativeint
UIntPtr Целое число без знака, размер которого зависит от базовой платформы (32-разрядное значение при 32-разрядной платформе и 64-разрядное значение при 64-разрядной платформе).An unsigned integer whose size depends on the underlying platform (a 32- bit value on a 32-bit platform and a 64-bit value on a 64-bit platform).

Не является CLS-совместимым.Not CLS-compliant.
UIntPtrUIntPtr

Не является встроенным типом.No built-in type.
UIntPtrUIntPtr

Не является встроенным типом.No built-in type.
UIntPtrUIntPtr

Не является встроенным типом.No built-in type.
unativeintunativeint
Object Корень иерархии объектов.The root of the object hierarchy. ОбъектObject objectobject Object^Object^ objobj
String Неизменяемая строка символов Юникода фиксированной длины.An immutable, fixed-length string of Unicode characters. StringString stringstring String^String^ stringstring

В дополнение к базовым типам данных пространство имен System содержит более 100 классов — от классов для обработки исключений до классов, которые работают с основными механизмами среды выполнения, такими как домены приложений и сборщик мусора.In addition to the base data types, the System namespace contains over 100 classes, ranging from classes that handle exceptions to classes that deal with core runtime concepts, such as application domains and the garbage collector. Пространство имен System также содержит много пространств имен второго уровня.The System namespace also contains many second-level namespaces.

Дополнительные сведения о пространствах имен см. в библиотеке классов .NET браузера .NET API.For more information about namespaces, use the .NET API Browser to browse the .NET Class Library. В справочной документации по API представлены документы по каждому пространству имен, его типам и каждому из элементов.The API reference documentation provides documentation on each namespace, its types, and each of their members.

См. такжеSee also