- C# é uma linguagem fortemente tipada, ou seja, sempre precisamos declarar a unidade da variável, como:
string,bool,int. - Utilização do método Pascal Case: Também conhecido como upper camel case ou capital case, Pascal Case combina palavras colocando todas com a primeira letra maiúscula.
- Palavras reservadas para leitura e recebimento de valores:
geteset.getrepresenta leitura.setrepresenta atribuição de valores.
- Os construtores em C# são importantes porque permitem:
- Criar objetos de uma classe.
- Inicializar membros e definir valores padrão.
- Manter a integridade dos dados.
- Promover práticas de programação seguras.
- A visibilidade
internalindica que uma classe, método ou propriedade só pode ser acessada dentro do mesmo projeto ou assembly. - Isso ajuda a encapsular detalhes de implementação, tornando o código mais organizado e seguro.
- Controle total sobre o que é acessível fora do projeto.
- A herança é um dos pilares da POO e permite que uma classe (filha) herde características e comportamentos de outra (pai).
- Isso evita duplicação de código e promove reutilização.
- Visibilidade: Métodos
privatenão são acessíveis na classe filha. - Construtores: A classe filha não herda os construtores da classe pai, mas pode chamar usando
base. - Sobrescrita de métodos: Use
overridena classe filha para sobrescrever métodosvirtualda classe pai.
💡 Exemplo de utilização:
internal class MenuAvaliarBanda : Menu
- A classe
HttpClienté usada para enviar requisições HTTP (GET, POST, PUT, DELETE...) e receber respostas do servidor web.
Ela faz parte do namespace:System.Net.Http.
- Instanciação: Criar uma instância de
HttpClient. - Envio da requisição: Usar métodos como
GetStringAsync,GetAsync,PostAsync, etc. - Recebimento da resposta: Objeto
HttpResponseMessage, contendo:- Código de status (ex: 200 OK, 404 Not Found)
- Headers
- Conteúdo da resposta
- Tratamento da resposta:
- Ler o conteúdo (geralmente JSON ou XML)
- Desserializar para objetos C#
Este documento explica como funciona a serialização e desserialização de objetos em C# utilizando System.Text.Json.
A serialização transforma um objeto C# em uma string JSON, ideal para armazenar ou transferir dados entre sistemas.
-
Reflexão
OJsonSerializerexamina a estrutura do objeto com base em reflexão. -
Mapeamento com atributos
Ele identifica as propriedades do objeto e utiliza[JsonPropertyName]para definir os nomes no JSON. -
Conversão de tipos
Os tipos de dados do C# são convertidos para equivalentes em JSON. -
Geração do JSON
Uma string JSON é gerada contendo os nomes e valores das propriedades do objeto.
Na desserialização, o processo é o inverso: transforma-se uma string JSON em um objeto C#.
JSON de entrada:
{
"song": "Bohemian Rhapsody",
"artist": "Queen",
"duration_ms": 355000
} Loops (laços de repetição) permitem executar um bloco de código várias vezes até que uma condição seja atendida. Em C#, os principais tipos de loops são:
Usado quando sabemos o número de vezes que o código deve ser executado:
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Iteração {i}");
} No código acima, temos:
- Inicialização (
int i = 0): Define o contador que dará início ao loop. - Condição (
i < 5): Enquanto essa condição for verdadeira, a execução continuará se repetindo. - Incremento (
i++): Atualiza o contador ao final de cada ciclo (ou “iteração”).
🔁 Em outras palavras:
Enquanto i for menor que 5, incrementamos o contador em +1 a cada passo.
Quando i chega ao valor 5, o loop é encerrado automaticamente.
A estrutura while executa um bloco de código enquanto uma condição for verdadeira. A verificação é feita antes de cada execução.
No exemplo abaixo, temos:
int tentativas = 0;
while (tentativas < 3)
{
Console.WriteLine($"Tentativa {tentativas + 1}");
tentativas++;
}```
### 🔁 Estrutura de Repetição: `do-while`
A estrutura `do-while` é **similar ao `while`**, com uma diferença importante:
> Ela executa o bloco **pelo menos uma vez**, pois a verificação da condição acontece **após** a execução.
#### 🧪 Exemplo em C#:
```csharp
int tentativas = 0;
do
{
Console.WriteLine($"Tentativa {tentativas + 1}");
tentativas++;
} while (tentativas < 3);Percorre todos os itens de uma coleção (arrays, listas, etc.). Por exemplo:
string[] frutas = { "Maçã", "Banana", "Laranja" };
foreach (string fruta in frutas)
{
Console.WriteLine(fruta);
}| Estrutura | Quando Usar? | Exemplo Típico |
|---|---|---|
for |
Quando você sabe o número exato de iterações | Contagens, processamento de intervalos |
while |
Para loops com condições complexas ou indefinidas | Validação de entrada, jogos em loop |
do-while |
Quando o bloco deve executar pelo menos 1 vez | Menus interativos, tentativas de login |
foreach |
Para percorrer todos os itens de uma coleção | Listas, arrays, dicionários |
A classe Array é a superclasse de onde todas as instâncias de array do C# herdam seus atributos e métodos. Dentre as características desta classe temos:
- Pode possuir uma ou mais dimensões.
- Tem um tamanho fixo.
- Suporta acesso por índices.
Como vimos, podemos criar uma instância da classe usando a sintaxe mais simplificada int[] valores = new int[10] ou usar o método CreateInstance por exemplo: Array pesquisa = Array.CreateInstance(typeof(double), 6);
Para adicionar elementos ao vetor podemos usar o método SetValue que recebe dois parâmetros: o elemento e o índice, onde o elemento será “setado”. Temos um exemplo: pesquisa.SetValue(9.1,1);
As principais propriedades e métodos disponibilizados pela classe Array apresentamos na tabela abaixo:
| Propriedade/Método | Descrição |
|---|---|
| GetValue | retorna o conteúdo/valor de um elemento pelo índice. |
| GetLength | retorna o números de elementos do array. |
| Rank | retorna o número de dimensões de um array. |
| CopyTo | cria uma cópia de todos os valores de um array. |
| Sort | ordena os valores de um array de forma ascendente. |
| Reverse | inverte a ordem de elementos de um array. |
| Clone | cria uma cópia do array. |
| Length | retorna o número de elementos de um array. |
| IndexOf | encontra a primeira ocorrência de um elemento no array. |
| LastIndexOf | encontra a última ocorrência de um elemento no array. |
| Clear | limpa todas as posições de um array. |
| Exists | verifica se existe ou não um elemento no array. |