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, 6
Diferenç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
TimeSpan
eDateTime
)
- 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 --version
Observe 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 restore
O 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 --force
Isso 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 test
Para 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