Essa é uma coleção de projetos Csharp dividida em tópicos que contém exemplos de código com explicações, diferentes usos e links para outras leituras.
Ler em: English, Español, Traditional Chinese.
É um playground porque você pode fazer alterações no código para ver como ele se comporta, além de testá-lo usando asserções. Também é possível revisar o código que você escreveu automaticamente e verificar se ele se encaixa no guia de estilo de código Csharp. Isso tudo pode tornar seu processo de aprendizagem mais interativo e ajudar a manter a qualidade do código bastante alta desde o início.
É um cheatsheet porque você pode voltar a esses exemplos de código quando quiser recapitular a sintaxe das estruturas padrão do Csharp. O código está cheio de asserções, então você poderá ver o retorno dos métodos sem precisar executá-los.
Você pode se interessar também por 🤖 Gravatar Extensions
Cada projeto neste repositório é estruturado para facilitar a aprendizagem e experimentação dos tópicos de C#. Aqui está um exemplo de como um projeto típico está organizado:
// Nome do tópico
// Exemplo: Lists (Listas em C#)
// Link para leituras adicionais
// @see: https://www.learncs.org/en/Lists
// Descrição do Tópico
// Uma explicação mais detalhada sobre o tópico atual, como listas (Lists) em C#.
// Exemplo: As listas em C# são semelhantes às listas em outras linguagens, como Java, oferecendo um objeto que pode conter múltiplos elementos em uma ordem específica.
// Exemplo de Código
List<int> numbers = new List<int>(); // Declaração de uma lista de inteiros
// Explicação do Subtópico
// Cada arquivo contém exemplos e funções de teste que ilustram subtópicos (ex.: tipos de lista, métodos de lista).As listas em C# são muito semelhantes às listas em outras linguagens, como Java. Elas são objetos que contêm variáveis em uma ordem específica. O tipo de variável que a lista pode armazenar é definido usando a sintaxe genérica (<T>). Veja abaixo um exemplo de como declarar e manipular listas em C#:
// Declaração de uma lista de inteiros chamada "numbers"
List<int> numbers = new List<int>();
// Adicionando elementos à lista
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
// Imprimindo os elementos da lista
Console.WriteLine(string.Join(", ", numbers)); // Saída: 1, 2, 3
// Adicionando um array inteiro à lista usando o método AddRange
int[] array = new int[] { 4, 5, 6 };
numbers.AddRange(array);
// Imprimindo os elementos atualizados da lista
Console.WriteLine(string.Join(", ", numbers)); // Saída: 1, 2, 3, 4, 5, 6Diferença entre Listas e Arrays
- Listas: São de tamanho dinâmico, ou seja, podem crescer e diminuir conforme necessário. Elas são úteis quando você não sabe o número exato de elementos que precisará armazenar.
- Arrays: Têm tamanho fixo, definido no momento da criação, e são melhores para quando o número de elementos é conhecido e fixo.
- Encontrar o tópico que deseja aprender ou recapitular.
- Ler os comentários e/ou a documentação vinculada em cada projeto (como no exemplo acima).
- Analisar os exemplos e asserções para ver exemplos de uso e saída esperada dos métodos.
- Alterar o código ou adicionar novas asserções para ver o que acontece.
- Executar testes e revisar o código para ver se ele funciona e para saber se está escrito corretamente.
- Começando
- Operadores
- Operadores Aritméticos (
+,-,*,/,%) - Operadores Bitwise (
&,|,^,>>,<<,~) - Operadores de Atribuição (
=,+=,-=,*=,/=,%=etc.) - Operadores de Relacionais (
==,!=,>,<,>=,<=) - Operadores Lógicos (
&&,||,!)
- Operadores Aritméticos (
- Tipos de Dados
- Controles de Fluxo
- A declaração
if - A declaração
if-else - A declaração
else if - A declaração
foreach - A declaração
switch - A declaração
for - A declaração
while - A declaração
do-while - A declaração
try-catch - A declaração
break - A declaração
continue - A declaração
return - A declaração
using - A declaração
yield - A declaração
async/await - A declaração
goto
- A declaração
- Funções
- Classes
- Módulos
- Erros e Exceções
- Tratando Exceções (declaração
try)
- Tratando Exceções (declaração
- Arquivos
- Lendo e Escrevendo (declaração
StreamWriter writer = new StreamWriter("erismar.txt"))
- Lendo e Escrevendo (declaração
- Adicional
- Algumas Bibliotecas Padrão
- Tempo e Datas (bibliotecas
TimeSpaneDateTime)
- Tempo e Datas (bibliotecas
Instalando o Dotnet
Certifique-se de ter o SDK Dotnet instalado em sua máquina.
Você pode ver a versão do Dotnet executando:
dotnet --versionObserve que neste repositório sempre que você vê o dotnet, será assumido que é o Dotnet 6.
Instalando dependências
Instale todas as dependências necessárias para o projeto executando:
- Abra o terminal ou prompt de comando.
- Navegue até a pasta raiz do seu projeto, onde o arquivo .csproj está localizado.
- Execute o seguinte comando:
dotnet restoreO comando dotnet restore irá baixar todas as dependências listadas no arquivo .csproj do seu projeto, utilizando o NuGet como gerenciador de pacotes.
💡Dica Adicional
Se precisar atualizar as dependências para as versões mais recentes disponíveis, você pode usar o comando:
dotnet restore --forceIsso força uma nova restauração, baixando as versões mais recentes dos pacotes, conforme especificado nas configurações do projeto.
Testes são feitos usando os frameworks Xunit, NUnit e MSTest.
Para executar todos os testes, execute o seguinte comando na pasta raiz do projeto:
dotnet testPara executar testes específicos, execute:
dotnet test <caminho_do_projeto>Para executar um teste específico por nome:
dotnet test --filter FullyQualifiedName~Namespace.TestClass.TestMethod