Visão geral da biblioteca de classes do .NET

As APIs do .NET incluem classes, interfaces, delegados e tipos de valor que agilizam e otimizam o processo de desenvolvimento e dão acesso à funcionalidade do sistema. Para facilitar a interoperabilidade entre linguagens, os tipos do .NET têm conformidade com CLS e, assim, podem ser usados por qualquer linguagem de programação cujo compilador esteja de acordo com a CLS (Common Language Specification).

Os tipos do .NET são a base na qual os aplicativos, os componentes e os controles do .NET são criados. O .NET inclui tipos que executam as seguintes funções:

  • Representam tipos de dados base e exceções.
  • Encapsulam estruturas de dados.
  • Executam E/S.
  • Acessam informações sobre tipos carregados.
  • Invocam verificações de segurança do .NET.
  • Fornecem acesso a dados, uma GUI detalhada do lado do cliente e uma GUI do lado do cliente controlada pelo servidor.

O .NET fornece um conjunto avançado de interfaces, bem como classes abstratas e concretas (não abstratas). Você pode usar as classes concretas no estado em que se encontram ou, em muitos casos, pode derivar suas próprias classes delas. Para usar a funcionalidade de uma interface, você pode criar uma classe que implementa a interface ou derivar uma classe de uma das classes do .NET que implementa a interface.

Convenções de nomenclatura

Os tipos do .NET usam um esquema de nomenclatura de sintaxe por ponto que denota uma hierarquia. Essa técnica agrupa tipos relacionados em namespaces para que eles possam ser pesquisados e referenciados com mais facilidade. A primeira parte do nome completo (até o ponto mais à direita) é o nome do namespace. A última parte do nome é o nome do tipo. Por exemplo, System.Collections.Generic.List<T> representa o tipo List<T>, que pertence ao namespace System.Collections.Generic. Os tipos em System.Collections.Generic podem ser usados para trabalhar com coleções genéricas.

Esse esquema de nomenclatura facilita para desenvolvedores de bibliotecas estender o .NET para criar grupos hierárquicos de tipos e nomeá-los de maneira consistente e informativa. Ele também permite que tipos sejam identificados sem ambiguidades por seu nome completo (ou seja, pelo namespace e pelo nome de tipo), o que impede conflitos de nomes de tipo. Os desenvolvedores de bibliotecas devem usar a seguinte convenção para criar nomes para seus namespaces:

CompanyName.TechnologyName

Por exemplo, o namespace Microsoft.Word segue esta diretriz.

O uso de padrões de nomenclatura para agrupar tipos relacionados em namespaces é um modo útil de compilar e documentar bibliotecas de classes. No entanto, esse esquema de nomenclatura não afeta visibilidade, acesso a membro, herança, segurança ou associação. Um namespace pode ser particionado em vários assemblies e um único assembly pode conter tipos de vários namespaces. O assembly fornece a estrutura formal para criação de versão, implantação, segurança, carregamento e visibilidade no Common Language Runtime.

Para obter mais informações sobre namespaces e nomes de tipos, consulte Common Type System.

namespace System

O System é o namespace raiz para tipos fundamentais no.NET. Esse namespace contém classes que representam os tipos de dados base usados por todos os aplicativos, por exemplo, Object (a raiz da hierarquia de herança), Byte, Char, Array, Int32 e String. Muitos desses tipos correspondem aos tipos de dados primitivos que sua linguagem de programação usa. Ao gravar códigos usando tipos .NET, você pode usar a palavra-chave correspondente da sua linguagem quando um tipo de dados base do .NET é esperado.

A tabela a seguir lista os tipos base que o .NET fornece, descreve resumidamente cada tipo e indica o tipo correspondente em Visual Basic, C#, C++ e F#.

Categoria Nome da classe Descrição Tipo de dados do Visual Basic Tipo de dados em C# Tipo de dados de C++/CLI Tipo de dados de F#
Integer Byte Um inteiro de 8 bits sem sinal. Byte byte unsigned char byte
SByte Um inteiro com sinal de 8 bits.

Não compatível com CLS.
SByte sbyte char ou signed char sbyte
Int16 Um inteiro de 16 bits com sinal. Short short short int16
Int32 Um inteiro com sinal de 32 bits. Integer int int ou long int
Int64 Um inteiro com sinal de 64 bits. Long long __int64 int64
UInt16 Um inteiro sem sinal de 16 bits.

Não compatível com CLS.
UShort ushort unsigned short uint16
UInt32 Um inteiro sem sinal de 32 bits.

Não compatível com CLS.
UInteger uint unsigned int ou unsigned long uint32
UInt64 Um inteiro sem sinal de 64 bits.

Não compatível com CLS.
ULong ulong unsigned __int64 uint64
Ponto flutuante Half Um número de ponto flutuante de meia precisão (16 bits).
Single Um número de ponto flutuante de precisão simples (32 bits). Single float float float32 ou single
Double Um número de ponto flutuante de precisão dupla (64 bits). Double double double float ou double
Lógico Boolean Um valor booliano (verdadeiro ou falso). Boolean bool bool bool
Outro Char Um caractere Unicode (16 bits). Char char wchar_t char
Decimal Um valor decimal (128 bits). Decimal decimal Decimal decimal
IntPtr Um inteiro com sinal cujo tamanho dependa da plataforma subjacente (um valor de 32 bits em uma plataforma de 32 bits e um valor de 64 bits em uma plataforma de 64 bits). nint unativeint
UIntPtr Um inteiro sem sinal cujo tamanho dependa da plataforma subjacente (um valor de 32 bits em uma plataforma de 32 bits e um valor de 64 bits em uma plataforma de 64 bits).

Não compatível com CLS.
nuint unativeint
Object A raiz da hierarquia do objeto. Object object Object^ obj
String Uma cadeia de caracteres Unicode imutável e de comprimento fixo. String string String^ string

Além dos tipos de dados base, o namespace System contém mais de 100 classes, que vão desde classes que identificam exceções até classes que lidam com os conceitos de runtime, como domínios de aplicativo e o coletor de lixo. O namespace System também contém vários namespaces de segundo nível.

Para obter mais informações sobre namespaces, use o Navegador de API do .NET para procurar a Biblioteca de classes do .NET. A documentação de referência de API fornece informações sobre cada namespace, seus tipos e cada um dos seus membros.

Estruturas de dados

O .NET inclui um conjunto de estruturas de dados que são a base de muitos aplicativos .NET. Elas são em sua maioria coleções, mas também incluem outros tipos.

  • Array - Representa uma matriz de objetos fortemente tipados que podem ser acessados por índice. Tem um tamanho fixo, de acordo com sua construção.
  • List<T> – representa uma lista fortemente tipada de objetos que podem ser acessados por índice. É redimensionado automaticamente conforme necessário.
  • Dictionary<TKey,TValue> – representa uma coleção de valores que são indexados por uma chave. Os valores podem ser acessados via chave. É redimensionado automaticamente conforme necessário.
  • Uri – fornece uma representação de objeto de um URI (Uniform Resource Identifier) e fácil acesso às partes do URI.
  • DateTime – representa um momento no tempo, geralmente expresso como uma data e hora do dia.

APIs utilitárias

O .NET inclui um conjunto de APIs utilitárias que fornecem funcionalidade para várias tarefas importantes.

  • HttpClient – uma API para enviar solicitações HTTP e receber respostas HTTP de um recurso identificado por um URI.
  • XDocument - Uma API para carregar e consultar documentos XML com o LINQ.
  • StreamReader – uma API para ler arquivos.
  • StreamWriter – uma API para gravar arquivos.

APIs do modelo de aplicativo

Muitos modelos de aplicativo podem ser usados com o .NET, por exemplo:

  • ASP.NET – uma estrutura da Web para a criação de sites e serviços Web. Suporte para Windows, Linux e macOS (depende de versão do ASP.NET).
  • .NET MAUI – uma plataforma de aplicativo para a criação de aplicativos nativos executados no Windows, macOS, iOS e Android usando C#.
  • Área de Trabalho do Windows – Inclui Windows Presentation Foundation (WPF) e Windows Forms.

Confira também