Compartilhar via


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 fornecem acesso à funcionalidade do sistema. Para facilitar a interoperabilidade entre idiomas, a maioria dos tipos .NET é compatível com CLS e, portanto, pode ser usada de qualquer linguagem de programação cujo compilador esteja em conformidade com a CLS (common language specification).

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

  • Represente tipos de dados base e exceções.
  • Encapsulam estruturas de dados.
  • Executam E/S.
  • Acessam informações sobre tipos carregados.
  • Invoque 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 as-is ou, em muitos casos, 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 .NET que implementa a interface.

Convenções de nomenclatura

Os tipos .NET utilizam uma sintaxe de nomenclatura com pontos que indica uma hierarquia. Essa técnica agrupa tipos relacionados em namespaces para que 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 List<T> tipo, que pertence ao System.Collections.Generic namespace. Os tipos em System.Collections.Generic podem ser usados para trabalhar com coleções genéricas.

Esse esquema de nomenclatura facilita que os desenvolvedores de biblioteca que estendem o .NET criem grupos hierárquicos de tipos e os nomeiem de maneira consistente e informativa. Ele também permite que os tipos sejam identificados de forma inequívoca pelo nome completo (ou seja, pelo namespace e pelo nome do tipo), o que impede colisões de nome de tipo. Espera-se que os desenvolvedores de biblioteca usem a seguinte convenção ao criar nomes para seus namespaces:

CompanyName. TechnologyName

Por exemplo, o namespace Microsoft.Word está em conformidade com essa diretriz.

O uso de padrões de nomenclatura para agrupar tipos relacionados em namespaces é uma maneira útil de criar e documentar bibliotecas de classes. No entanto, esse esquema de nomenclatura não tem efeito sobre visibilidade, acesso a membros, 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 controle de versão, implantação, segurança, carregamento e visibilidade no common language runtime.

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

Namespace do sistema

O System namespace é o namespace raiz para tipos fundamentais no .NET. Esse namespace inclui 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, Int32e String. Muitos desses tipos correspondem aos tipos de dados primitivos que sua linguagem de programação usa. Ao escrever código usando tipos .NET, você pode usar a palavra-chave correspondente do idioma quando um tipo de dados base do .NET é esperado.

A tabela a seguir lista os tipos base fornecidos pelo .NET, descreve brevemente cada tipo e indica o tipo correspondente no Visual Basic, C#, C++e F#.

Categoria Nome da classe Descrição Tipo de dados do Visual Basic Tipo de dados C# Tipo de dados C++/CLI Tipo de dados F#
Número Inteiro Byte Um inteiro sem sinal de 8 bits. 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 com sinal de 16 bits. 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 única (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
Outros 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 depende 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 depende 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 de objetos. Object object Object^ obj
String Uma cadeia de caracteres Unicode imutável de comprimento fixo. String string String^ string

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

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

Estruturas de dados

O .NET inclui um conjunto de estruturas de dados que são componentes fundamentais de muitos aplicativos .NET. Elas são principalmente 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 indexados por uma chave. Os valores podem ser acessados por meio da chave. É redimensionado automaticamente conforme necessário.
  • Uri - Fornece uma representação de objeto de um identificador de recurso uniforme (URI) e acesso fácil às partes do URI.
  • DateTime - Representa um instantâneo no tempo, normalmente expresso como uma data e hora do dia.

APIs utilitárias

O .NET inclui um conjunto de APIs de utilitário que fornecem funcionalidade para muitas 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 LINQ.
  • StreamReader - Uma API para ler arquivos.
  • StreamWriter - Uma API para gravar arquivos.

APIs do modelo de aplicativo

Há muitos modelos de aplicativo que podem ser usados com o .NET, por exemplo:

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

Consulte também