Skip to main content

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 to como toString, toList aloca 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 Console e o Debug

C# é compilado

  1. Após escrever o código, o mesmo é compilado usando um C# Compiler;
  2. 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.
  3. 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).
  4. 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).
  5. 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.

alt text

Operador == em CSharp

  • Funciona por referência

Value Types e Reference types | Tabela CSharp

alt text

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.

alt text

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