Visão geral da biblioteca de classes .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 linguagens, a maioria dos tipos .NET são compatíveis com CLS e, portanto, podem ser usados a partir de qualquer linguagem de programação cujo compilador esteja em conformidade com a especificação de linguagem comum (CLS).
Os tipos .NET são a base sobre a qual os aplicativos, componentes e controles .NET são criados. O .NET inclui tipos que executam as seguintes funções:
- Representar tipos de dados de base e exceções.
- Encapsular estruturas de dados.
- Execute E/S.
- Acesse informações sobre tipos carregados.
- Invoque verificações de segurança do .NET.
- Forneça acesso a dados, GUI avançada do lado do cliente e GUI do lado do cliente controlada pelo servidor.
O .NET fornece um rico conjunto de interfaces, bem como classes abstratas e concretas (não abstratas). Você pode usar as classes concretas como estão ou, em muitos casos, derivar suas próprias classes a partir 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 usam um esquema de nomenclatura de sintaxe de pontos que conota uma hierarquia. Essa técnica agrupa tipos relacionados em namespaces para que possam ser pesquisados e referenciados mais facilmente. 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 podem System.Collections.Generic ser usados para trabalhar com coleções genéricas.
Esse esquema de nomenclatura torna mais fácil para os desenvolvedores de bibliotecas que estendem o .NET criar grupos hierárquicos de tipos e nomeá-los de maneira consistente e informativa. Ele também permite que os tipos sejam identificados inequivocamente por seu nome completo (ou seja, por seu namespace e nome do tipo), o que evita colisões de nome de tipo. Espera-se que os desenvolvedores de bibliotecas usem a seguinte convenção ao criar nomes para seus namespaces:
Nome da Empresa.TecnologiaNome
Por exemplo, o namespace Microsoft.Word
está em conformidade com esta 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 de membros, herança, segurança ou vinculaçã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 versionamento, 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, , CharArray, Int32e String. Muitos desses tipos correspondem aos tipos de dados primitivos que sua linguagem de programação usa. Quando você escreve código usando tipos .NET, você pode usar a palavra-chave correspondente do seu idioma quando um tipo de dados de base .NET é esperado.
A tabela a seguir lista os tipos base que o .NET fornece, descreve brevemente cada tipo e indica o tipo correspondente em Visual Basic, C#, C++ e F#.
Categoria | Nome da classe | Description | 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 não assinado de 8 bits. | Byte |
byte |
unsigned char |
byte |
SByte | Um inteiro assinado de 8 bits. Não compatível com CLS. |
SByte |
sbyte |
char ou signed char |
sbyte |
|
Int16 | Um inteiro assinado de 16 bits. | Short |
short |
short |
int16 |
|
Int32 | Um inteiro assinado de 32 bits. | Integer |
int |
int ou long |
int |
|
Int64 | Um inteiro assinado de 64 bits. | Long |
long |
__int64 |
int64 |
|
UInt16 | Um inteiro não assinado de 16 bits. Não compatível com CLS. |
UShort |
ushort |
unsigned short |
uint16 |
|
UInt32 | Um inteiro não assinado de 32 bits. Não compatível com CLS. |
UInteger |
uint |
unsigned int ou unsigned long |
uint32 |
|
UInt64 | Um inteiro não assinado 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 booleano (true ou false). | 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 assinado 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 não assinado 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 e de comprimento fixo. | String |
string |
String^ |
string |
Além dos tipos de dados base, o System namespace contém mais de 100 classes, variando de classes que manipulam exceções a classes que lidam com conceitos de tempo de execução principais, 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 .NET API Browser 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 os cavalos de batalha de muitos aplicativos .NET. Estas são maioritariamente 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, pela 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 identificador de recurso uniforme (URI) e fácil acesso às partes do URI.
- DateTime - Representa um instante no tempo, normalmente expresso como uma data e hora do dia.
APIs de utilidade
O .NET inclui um conjunto de APIs de utilitários 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 leitura de arquivos.
- StreamWriter - Uma API para escrever ficheiros.
APIs de modelo de aplicativo
Há muitos modelos de aplicativos que podem ser usados com o .NET, por exemplo:
- ASP.NET - Um framework web para a construção de sites e serviços. Compatível com Windows, Linux e macOS (depende ASP.NET versão).
- .NET MAUI - Uma plataforma de aplicativos para criar aplicativos nativos que são executados no Windows, macOS, iOS e Android usando C#.
- Windows Desktop - Inclui Windows Presentation Foundation (WPF) e Windows Forms.