Introdução
- Introdução
Csproj
-
É sempre interessante pensar em tratar os nullable como erros ao invés de warning, para isso vá no CSPROJ e adicionei a seguinte tag
<PropertyGroup> <TreatWarningAsErrors> true </TreatWarningAsErrors> ....
To no C#
- Todo método que tem
tocomotoString,toListaloca memória
Capacity
- Nas listas tem essa propriedade para definir com quantos elementos queremos construir a lista. Se não definirmos o processo ocorre da seguinte forma
- Ele cria um array com 0, depois cria outro com 4 posições, se precisar de mais posições ele cria um novo com 8 copia os dados do array anterior, apaga ele e vai fazendo dessa forma sucessivamente
String
- String no C# são imutáveis, a cada atribuição é gerado um novo objeto heap
WriteLine
- Existe o
Consolee oDebug
C# é compilado
- Após escrever o código, o mesmo é compilado usando um C# Compiler;
- O processo de compilação se certifica se não há erros código. Caso exista algum erro, o compilador avisa o programador para concertá-lo e, apenas então, volta a processar o código desde o início novamente.
- Então, o compilador converte o código fonte do C# em um código intermediário específico chamado Commom Intermediate Language (CIL) ou Intermediate Language Code (ILC ou IL code). A partir dessa linguagem intermediária o C# pode rodar em qualquer sistea operacional, definindo-o como uma Platform Independent Language (Linguagem Indêpendente de Plataforma).
- A partir daí, o CIL ou ILC precisa ser convertido em linguagem de máquina. Isso é feito a partir do .NET Framework, um sistema de execução virtual conhecido como Common Language Runtime (CLR). Todo esse processo acaba se enquadrando na definição dada pelo professor do Just-In-Time Compilation (JIT).
- Finalmente, o programa é atribuido físicamente a pacotes denominados Assemblies. Esses pacotes são as bibliotécas ou arquivos executáveis que levam ao processamento do código.
Operador == em CSharp
- Funciona por referência
Value Types e Reference types | Tabela CSharp

info
A String as vezes se comporta com reference type e value type
O que são Síncrono e Assíncrono
- Síncronas: é uma operação onde o controle é devolvido ao chamador somente após a conclusão da operação.
- Assíncronas: é uma operação onde o controle é devolvido imediatamente ao chamador, permitindo que ele continue a execução enquanto a operação ocorre em paralelo.

Uso do this
- Usar o this nos métodos e propriedades para deixar claro que se refere a instância da classe e não a algo estático