O C# é uma linguagem de programação multiparadigma criada pela Microsoft, sendo a principal da plataforma .NET. Por ser uma linguagem que suporta, entre outros paradigmas, a orientação à objetos, ela suporta conceitos comuns como encapsulamento, herança e polimorfismo. Trata-se também de uma linguagem fortemente tipada e case-sensitive, ou seja, faz diferenciação entre letras minúsculas e maiúsculas.
Além disso o C# é uma linguagem multiplataforma. Sendo assim, você pode utilizá-la para desenvolver para plataformas web, dispositivos móveis e aplicações desktop. Com a praticidade dessa linguagem, você pode, de forma relativamente fácil, desenvolver desde projetos mais simples até projetos complexos e multiplataforma.
Para ver mais detalhes sobre o C# recomendo a leitura do nosso artigo “O que é e como começar com C# (C Sharp)?”
Curso C# - Fundamentos
Conhecer o cursoComo instalar o C# e nosso primeiro exemplo
Agora que já sabemos o que é o C# e suas principais características, estamos prontos para realizar a instalação e executar o nosso primeiro exemplo com a linguagem como podemos acompanhar em nosso artigo “Como instalar o C# e nosso primeiro exemplo”.
Conhecendo variáveis e constantes
O C# é uma linguagem de tipagem estática, ou seja, existe um sistema de tipos bem definido e que é validado durante o tempo de compilação do código. Além disso o C# também é uma linguagem fortemente tipada, isso significa que o C# não irá realizar conversão automática de tipos, caso alguma conversão seja necessária ela deve ser feita de forma explícita pela pessoa que está desenvolvendo o software.
Por padrão, o C# possui em sua biblioteca padrão diversos tipos de dados, abaixo estão listados os mais comuns de serem utilizados:
- byte: um inteiro com valor 8 bits, onde seu intervalo de valores vai do -128 até o 127. É um dado leve, que ocupa pouco espaço em memória;
- char: trata-se de um único caractere unicode de 16 bits. Seu intervalo de valores vai do ‘\u0000’ ou 0 até o valor máximo ‘\uffff’ ou 65535. É utilizado para armazenar caracteres de maneira isolada;
- string: trata-se de um conjunto de caracteres de tamanho indefinido onde cada um dos caracteres possui o tamanho de dois bytes;
- short: trata-se de um valor inteiro de 16 bits. Seu intervalo de valores vai do -32.768 até o 32.767;
- int: trata-se de um valor inteiro de 32 bits. Suporta valores de -2.147.483.648 a 2.147.483.647;
- long: define um valor inteiro de 64 bits. Suporta valores de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807;
- boolean: é um dos tipos de dados mais simples, pois ele pode armazenar apenas dois valores: true (verdadeiro) ou false (falso). É empregado para realizar testes lógicos, dentro de estruturas de decisão e repetição, por exemplo.
- float: trata-se de um tipo de dado de ponto flutuante de 32 bits. Isso quer dizer que ele permite armazenar valores decimais entre 6 e 7 casas. Porém, o armazenamento em memória pode não representar necessariamente o valor repassado. Por exemplo, um float definido com “0,001” pode acabar sendo armazenado como “0,00100001”, e isso não somente no Java, já que isso é decorrência dos pontos flutuantes em geral. Por isso, o tipo float não deve ser usado para operações que precisam passar por várias operações aritméticas, como no caso de sistemas financeiros. Isso porque, a primeira vista, essa imprecisão pode não impactar, mas na sequência de operações realizadas, estas imprecisões podem começar a aparecer nos resultados;
- double: representa um ponto flutuante de 64 bits. Por isso, ele permite armazenar números de até cerca de 15 casas decimais. A observação para o tipo float também é válida para o tipo double: por ser um tipo de dado que é armazenado por aproximação de valores, ele não deve ser utilizado em operações que demandam precisão absoluta.
Depois de vermos os tipos de dados, podemos criar nossas variáveis. Elas têm algumas regras, como por exemplo, devem ser claras e auto-explicativas.
string nomeDoAluno = "";
int idade = 0;
Também temos as constantes, que sob um ponto de vista prático são como variáveis, só que com o ponto de que seu valor não pode ser modificado. Isso quer dizer que, se você declara uma constante chamada MaioridadePenal
com o valor 18, esse valor não poderá ser jamais modificado durante a execução da aplicação.
A maneira de declarar uma constante no C# é através da palavra reservada const
:
const int MaioridadePenal = 18;
No artigo sobre variáveis e constantes no C#, podemos nos aprofundar no uso de constantes e ver mais exemplos e explicações sobre o uso de variáveis.
Curso C# - Orientação a Objetos
Conhecer o cursoEstruturas condicionais e estruturas de repetição
As estruturas condicionais e de repetição são fundamentais e vem para nos ajudar no reaproveitamento de código.
As estruturas condicionais possibilitam ao programa tomar decisões e alterar o seu fluxo de execução. Isso possibilita ao desenvolvedor o poder de controlar quais são as tarefas e trechos de código executados de acordo com diferentes situações, como os valores de variáveis. Algumas estruturas condicionais no Java são o if/else
e o switch/case
.
Abaixo temos um exemplo simples da utilização do if/else
. Nele verificamos se a pessoa é maior ou menor de idade, dependendo do valor que contiver na variável idade.
int idade = 18;
if (idade >= 18)
{
Console.WriteLine("Você é maior de idade!");
}
else
{
Console.WriteLine("Você é menor de idade!");
}
As estruturas de repetição, também conhecidas como loops (laços), são utilizadas para executar repetidamente uma instrução ou bloco de instrução enquanto determinada condição estiver sendo satisfeita. As principais estruturas de repetição são o for
e o while
.
Vejamos um exemplo abaixo utilizando o for
. Aqui teremos uma variável começando em zero, onde, a cada rodada, ela irá somar +1. Isso irá se repetir até que a variável chegue até 10, encerrando assim esse bloco.
for (int i = 0; i <= 10; i++)
{
Console.WriteLine("A variável i agora vale " + i);
}
Confira a execução desse código acima e outros exemplos com muitos mais detalhes em nosso artigo sobre estruturas de decisão e repetição no C#.
Curso C# - LINQ
Conhecer o cursoOrientação a Objetos
Como vimos na introdução deste artigo, o C# é uma linguagem orientada a objetos. O paradigma orientado a objetos traz boas vantagens, como a reutilização de código, a legibilidade e manutenibilidade do código, a natural modularização e a produção de código mais acessível, já que as estruturas criadas geralmente representam aspectos também existentes no mundo real.
Quando lidamos com o paradigma orientado a objetos, acabamos criando diversas unidades de software através de estruturas chamadas classes. A partir destas classes, podemos criar estruturas chamadas objetos, estruturas estas que interagem entre si. Esse é o motivo pelo qual o paradigma é chamado de orientação a objetos: todas as interações necessárias para que o software funcione ocorrem através de mensagens e comandos trocados entre estes objetos.
Uma classe nada mais é que um “molde” para definição de outras estruturas. Um exemplo seria uma classe chamada Pessoa. Todas as pessoas possuem características em comum, como nome, idade, sexo, etc, por isso elas podem fazer parte de uma mesma classe.
public class Pessoa
{
public string Nome;
public int Idade;
public char Sexo
}
Como o nome diz, na orientação a objetos temos os objetos. Os objetos são estruturas que são criadas a partir das classes. Por exemplo, os objetos criados a partir da classe Pessoa, podem usufruir dos mesmos atributos e métodos definidos pela Classe.
Pessoa cleyson = new Pessoa();
pessoa.Nome = "Cleyson Lima";
pessoa.Idade = 20;
pessoa.Sexo = 'M';
Também vimos que ela tem acesso aos métodos, que são comportamentos e ações que os objetos podem ter. Nesse nosso exemplo, poderíamos colocar que toda Pessoa pode falar, andar, comer, etc.
cleyson.Falar();
cleyson.Andar();
cleyson.Comer();
Para ver mais exemplos e conceitos em relação ao paradigma orientado a objetos no C#, recomendo a leitura do artigo Orientação a objetos no C#.
Curso C# - Entity Framework Core ORM
Conhecer o cursoO que é o gerenciador de dependências NuGet?
O NuGet é um gerenciador de dependências para a plataforma .NET. Ele define como os pacotes desta plataforma são criados, publicados e consumidos. Fornecendo ferramentas para cada uma dessas funções.
Para saber mais sobre o NuGet e seu funcionamento recomendo a leitura do nosso artigo “O que é o NuGet?”
Usando bibliotecas C# via NuGet
Instalar uma biblioteca com o NuGet é bem simples e podemos utilizar a CLI do .NET, para instalar uma biblioteca em um projeto basta executar o seguinte comando:
dotnet add package IdentificadorDoPacote
Então caso queira instalar o pacote Newtonsoft.Json que serve para realizar conversão de objetos C# no formato JSON basta executar o seguinte comando:
dotnet add package Newtonsoft.Json
Após execução do comando a biblioteca já terá sido baixado e já estará disponível no projeto, caso queira desinstalar um pacote basta então executar o seguinte comando:
dotnet remove package IdentificadorDoPacote
Então caso queira remover o pacote Newtonsoft.Json recentemente adicionada basta executar o comando:
dotnet remove package Newtonsoft.Json
Formação Desenvolvedor C#
Conhecer a formaçãoConclusão
O C# é uma linguagem bem poderosa e popular que possui um ecossistema bastante vasto, composto por diversas bibliotecas e frameworks para resolver os mais diferentes tipos de problemas como desenvolvimento web, desenvolvimento mobile, desenvolvimento desktop, inteligência artificial e várias outras possibilidades de uso dessa incrível linguagem.