C#

Conhecendo variáveis e constantes no C#

Conheça neste artigo os tipos de dados presentes no C# e a sintaxe para que possamos declarar variáveis e constantes.

há 1 ano 10 meses

Formação Desenvolvedor C#
Conheça a formação em detalhes

O C# é uma linguagem de programação muito popular, sendo uma excelente escolha devido a sua baixa curva de aprendizado e simplicidade (mas sem deixar de ser uma linguagem poderosa). Além disso, ela é a linguagem principal do .NET.

Neste artigo, conheceremos as variáveis e constantes da linguagem C# e aprenderemos como declará-las.

C# - Fundamentos
Curso C# - Fundamentos
Conhecer o curso

Características de tipagem

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. Para isso, é necessário definir tipos explícitos para as variáveis que são criadas.

Apesar de que em versões mais recentes da linguagem foi adicionado o recurso de inferência de tipos, o que permite que o tipo das variáveis sejam definidos de forma automática pelo compilador, mas é importante frisar que isso não muda o fato do C# ter uma tipagem estática.

Existem algumas vantagens atreladas à utilização de sistemas de tipos estáticos como: equívocos de tipagem geralmente são percebidos com mais facilidade, além de que os processos de refatoração tendem a ser mais a prova de erros. Se acaba sendo necessário trocar o tipo de um parâmetro de uma função, por exemplo, o código não irá compilar até que todos os locais que referenciam o método passem a especificar o tipo correto.

Mas também existem algumas desvantagens: linguagens com tipagem estática têm tendência a serem mais verbosas, já que você precisa sempre estar declarando os tipos das variáveis. Além disso, a tipagem estática pode passar uma falsa sensação de segurança em alguns cenários, ainda mais no caso de versões mais novas das linguagens, que geralmente trabalham com inferência de tipagem, que é o caso do C#.

Além de ser estaticamente tipado, o C# também é fortemente tipado, isso quer dizer que para o C# os tipos dos dados importam, ou seja, 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.

Tipos de dados padrões C#

Como cada informação com a qual lidamos possui um tipo específico que melhor a representa, devemos escolher corretamente o tipo de variável que vamos utilizar. Portanto, é fundamental conhecer os tipos de dados que a linguagem nos oferece.

A seguir são apresentados os diversos tipos de dados do C#, a faixa de valores que ele aceita e quanto espaço uma variável desse tipo ocupa na memória.

C# - Orientação a Objetos
Curso C# - Orientação a Objetos
Conhecer o curso

Tipos numéricos inteiros

Os tipos numéricos inteiros armazenam números sem parte fracionária (algarismos após a vírgula). Note abaixo que cada tipo aceita uma faixa de valores, e que quanto maior essa faixa, maior também é o espaço ocupado em memória. Veja ainda que os tipos cujo nome começa com a letra “u” (de “unsigned” - sem sinal), não aceitam valores negativos, mas suportam uma faixa maior de valores positivos.

Tipo Faixa de valores Tamanho
sbyte -128 a 127 8 bits
byte 0 a 255 8 bits
short -32.768 a 32.767 16 bits
ushort 0 a 65.535 16 bits
int -2.147.483.648 a 2.147.483.647 32 bits
uint 0 a 4.294.967.295 32 bits
long -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 64 bits
ulong 0 a 18.446.744.073.709.551.615 64 bits

O tipo int é o mais comum, mas caso você esteja interessado em trabalhar com faixas de valores específicas, pode optar pelo tipo que melhor lhe atende e que ocupa menos memória.

Tipos numéricos de ponto flutuante

Os tipos de ponto flutuante representam os números “reais”, ou seja, aqueles que podem possuir uma parte fracionária.

Tipo Faixa de valores Precisão Tamanho
float ±1,5 x 10−45 para ±3,4 x 1038 ~6 a 9 dígitos 4 bytes
double ±5.0 × 10−324 to ±1.7 × 10308 ~15 a 17 dígitos 8 bytes
decimal ±1,0 x 10-28 para ±7,9228 x 1028 28 a 29 dígitos 16 bytes

Tipo booleano

O tipo booleano é usado para armazenar valores que podem ser representados como Verdadeiro ou Falso (sem valores intermediários).

Tipo Faixa de valores Tamanho
bool true ou false 1 bit

Tipos textuais

Também é muito comum que precisemos lidar com textos. Para esses casos, de forma geral os textos podem ser armazenados pelos tipos char e string. O primeiro é usado para apenas um caractere, enquanto o segundo é uma coleção de caracteres (um texto).

Tipo Faixa de valores Tamanho
char Um caractere 2 bytes
string Textos 2 bytes por caractere

C# - Algoritmos
Curso C# - Algoritmos
Conhecer o curso

Regras de nomeação de variáveis

A fim de manter uma mínima padronização do código-fonte, o C# estabelece alguns padrões para a definição de nomes para as variáveis:

  • Variáveis têm seu nome definido com a primeira letra minúscula. Caso se trate de um nome composto, a primeira letra deve ser minúscula, enquanto as outras devem ser maiúsculas. Espaços não podem ser utilizados no meio dos nomes das variáveis;
  • As variáveis não devem contar com caracteres especiais em seu nome. A única exceção é o underline (_) em algumas situações, como na definição de estruturas privadas;
  • Os nomes devem ser declarativos e autoexplicativos;
  • As variáveis são case-sensitive. Isso quer dizer que “nomeDoAutor” é diferente de “nomeDoautor”, de “NomeDoAutor” e de “nomedoautor”, por exemplo.

As variáveis abaixo seguem as convenções de nomenclatura:

string nomeDoAluno = "Cleyson Lima";
int idade = 21;

As variáveis abaixo ferem algumas das convenções:

int a = 0; // nome não é autoexplicativo
string NomeDoAluno = "Cleyson Lima"; // variável começando com letra maiúscula
int _idade = 21; // variável começando com caractere especial

Declarando constantes

Constantes, 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;

Veja que no caso das constantes a convenção de nomenclatura é que seja utilizado o PascalCase, ou seja, a primeira letra de cada palavra deve ser em maiúsculo.

C# - LINQ
Curso C# - LINQ
Conhecer o curso

Inferência de tipos

A inferência de tipos é uma técnica que permite que os tipos das variáveis sejam definidos de forma automática pelo compilador a partir do seu contexto, isso quer dizer que o compilador irá atribuir de forma automática o tipo da variável no momento de sua declaração a partir do tipo de dado que está sendo atribuído para a mesma.

Esse processo permite que sejamos capazes de escrever um código menos verboso, pois não há mais a necessidade de explicitamente informar qual será o tipo da variável no momento de sua declaração.

No C# para que possamos utilizar a inferência de tipos fazemos uso da palavra reservada var.

var nomeDoAluno = "Cleyson Lima"; // A váriavel será do tipo string pois recebe um dado do tipo string
var idade = 21; // A váriavel será do tipo int pois recebe um dado do tipo int
var estaVivo = true; // A váriavel será do tipo boolean pois recebe um dado do tipo boolean

Importante frisar que a inferência de tipos não retira o status de linguagem estaticamente tipada do C#, pois uma vez que o tipo foi definido mesmo que de forma automática a mesma não pode ter o seu tipo alterado ao longo da execução do programa, além disso é importante notar que a inferência de tipos só é possível de ser realizada caso a variável seja declarada e tenha seu valor inicial atribuído no mesmo momento.

var idade;
idade = 21;

O código acima não irá compilar e irá produzir um erro de compilação, pois no momento da criação da variável o compilador não é capaz de “adivinhar” qual deve ser o tipo da mesma, uma vez que não há o processo de atribuição do seu valor inicial no momento de sua declaração.

Conclusão

Como vimos nesse artigo, o C# possui uma tipagem estática e forte, o que faz com que as variáveis não possam ter seu tipo alterado ao longo da execução do programa e também que o C# não irá realizar conversão de tipos de forma automática.

Por fim, caso queira aprender mais sobre o C# e sua infinidade de recursos saiba que aqui na TreinaWeb temos o curso C# - Fundamentos que possui 04h05 de vídeo e um total de 29 exercícios. Conheça também nossos outros cursos de C#.

Veja quais são os tópicos abordados durante o curso de C# - Fundamentos:

  • Preparar o ambiente de desenvolvimento;
  • Criar novos projetos e compreender sua estrutura;
  • Declarar e utilizar variáveis e operadores;
  • Utilizar estruturas condicionais e de repetição;
  • Utilizar classes, métodos e namespaces;
  • Tratar exceções e depurar seu código.

Autor(a) do artigo

Cleyson Lima
Cleyson Lima

Professor, programador, fã de One Piece e finge saber cozinhar. Cleyson é graduando em Licenciatura em Informática pelo IFPI - Campus Teresina Zona Sul, nos anos de 2019 e 2020 esteve envolvido em vários projetos coordenados pela secretaria municipal de educação da cidade de Teresina, onde o foco era introduzir alunos da rede pública no mundo da programação e robótica. Hoje é instrutor dos cursos de Spring na TreinaWeb, mas diz que seu coração sempre pertencerá ao Python.

Todos os artigos

Artigos relacionados Ver todos