Variáveis e constantes em C#
Bom dia pessoal.
Hoje vou falar um pouco das variáveis e constantes do C#.
Quem já programa tira esse assunto de letra, mas para quem está iniciando, pode ter alguma dificuldade, então por isso vou falar um pouco sobre as variáveis básicas utilizadas em C# e constantes, com elas praticamente tudo é possível, mas também é fácil cometer erros por não saber utilizá-las corretamente.
Os tipos básicos de variáveis, ou tipos primitivos em C# são comuns a outras linguagens, geralmente mudando somente a nomenclatura de uma ou outra, siga a lista:
Nome .NET Tipo Bits Intervalo byte Byte Inteiro sem sinal 8 0 a 255 sbyte SByte Inteiro com sinal 8 -128 a 127 int Int32 Inteiro com sinal 32 -2.147.486.648 a 2.147.483.647 uint UInt32 Inteiro sem sinal 32 0 a 4.294.967.295 short Int16 Inteiro com sinal 16 -32.768 a 32.767 ushort UInt16 Inteiro sem sinal 16 0 a 65.535 long Int64 Inteiro com sinal 64 -922.337.203.685.477.508 a 922.337.203.685.477.507 ulong UInt64 Inteiro sem sinal 64 0 a 18.446.744.073.709.551.615 float Single Virgula com precisão simples 32 -3.402823e38 a 3.402823e38 double Double Virgula com precisão dupla 64 -1.79769313486232e308 a 1.79769313486232e308 char Char Um único caractere Unicode 16 bool Boolean Tipo booliano lógico 8 True ou False string String Uma sequência de caracteres decimal Decimal Fracionário com 29 dígitos 128 +-1.0 x 10e-28 a +-7.9 x 10e28
Então agora, vou explicar algumas delas e como usar, ao final, as outras serão auto-explicativas.
byte
Byte é um tipo de dado numérico, ele representa um número simples com 256 posições, começando do número 0 até o número 255 e ocupa 8 bits de memória. Normalmente é usado quando queremos representar números positivos pequenos, como por exemplo, idade, porque idade nunca ultrapassará 255 anos, então é mais eficiente utilizar o byte do outro tipo que ocupa mais memória.
sbyte
Sbyte é um tipo de dado numérico, ele representa um número simples com 256 posições, mas diferente do byte, ele possui valores negativos começando do número -128 até o número 127, ocupando 8 bits de memória. Normalmente é usado quando queremos representar números pequenos mas que possuam valores negativos, como por exemplo, temperatura ambiente em graus célsius.
int
Int é um tipo de dado numérico, ele representa um número simples com 4.294.967.296 posições, começando do número -2.147.486.648 até o número 2.147.483.647, ocupando 32 bits de memória. Este é o tipo numérico mais utilizado de todos, pois ele permite números muito grandes desde os negativos até os positivos, normalmente utilizado em contadores, como por exemplo, o placar de pontos de um jogo.
uint
Uint é um tipo de dado numérico, ele representa um número simples com 4.294.967.296 posições, começando do número 0 até o número 4.294.967.297, ocupando 32 bits de memória. Diferente do int, este tipo de dados não aceita valores negativos, normalmente utilizado em identificadores, como por exemplo, o id de itens.
short
Short é um tipo de dado numérico, ele é exatamente igual ao int, porém, com um intervalo menor, indo do número -32.768 até o número 32.767 e ocupando 16 bits de memória.
ushort
Ushort é um tipo de dado numérico, ele é exatamente igual ao uint, porém, com um intervalo menor, indo do número 0 até o número 65.535 e ocupando 16 bits de memória.
long
Long é um tipo de dado numérico, ele representa um número simples gigantesco, que inicia no número -922.337.203.685.477.508 e vai até o número 922.337.203.685.477.507, ocupando 64 bits de memória. Normalmente é usado para contadores gigantescos sem casas decimais, como por exemplo, a contagem de itens de uma distribuidora.
ulong
Ulong é um tipo de dado numérico, ele representa um número simples gigantesco, que inicia no número 0 e vai até o número 18.446.744.073.709.551.615, ocupando 64 bits de memória. Normalmente é usado para contadores gigantescos sem casas decimais e positivos, como por exemplo, o total de pessoas de uma cidade ou país.
float
Ulong é um tipo de dado numérico, ele representa um número gigantesco com casas decimais, que inicia no número -3.402823e38 e vai até o número 3.402823e38, ocupando 32 bits de memória. Normalmente é usado para contadores gigantescos monetários, como por exemplo, saldos financeiros.
double
Double é um tipo de dado numérico, ele representa um número gigantesco com casas decimais de maior precisão que o float, e inicia no número -1.79769313486232e308 até o número 1.79769313486232e308, ocupando 64 bits de memória. Normalmente é usado para contadores monetários gigantescos, como por exemplo, saldos financeiros
char
Char é um tipo de dado texto, que representa um único caracter alfanunérico e ocupa 16 bits. Normalmente utilizado como identificador, como por exemplo, para notas de um boletim ('A','B','C','D','E','F').
bool
Bool é um tipo de dado lógico, ele aceita somente 2 valores verdadeiro (True) e falso (False), ocupa 8 bits. Normalmente usados para status, como por exemplo, se o aluno foi aprovado (True) ou não (False).
string
String é um tipo de dado texto, que representa uma cadeia de caracteres com tamanho e ocupação de memória indefinidos, sendo estes diretamente ligados ao conteúdo da variável. Este tipo é como se fossem diversos "char" em sequência. Este campo é amplamente utilizado para textos, como nomes, descrições, códigos, etc...
decimal
Decimal é um tipo de dado numérico, ele representa um número fracionário com casas decimais, que inicia no número +-1.0 x 10e-28 e vai até o número +-7.9 x 10e28, ocupando 128 bits de memória. Normalmente é usado para cálculos matemáticos e/ou científicos, como por exemplo, fórmulas complexas de física que exigem grande precisam decimal.
Estes são a maioria de tipos de dados utilizados em variáveis em C# e em muitas outras linguagens.
Todas as variáveis numéricas são expressas simplesmente pelos seus valores como: 1, -5, 15.45, -7.5…
Todas as variáveis texto são expressas entre aspas como: “Juca Bala”, “Motor elétrico”, “Av. Continental”, “45”, “3,3”, “4.5”…
A variável bool é a única que parece texto e não usa aspas é expressa simplesmente como True ou False.
Notem que nas variáveis de texto, podemos ter valores numéricos, mas neste caso, quando um número está gravado em uma variável do tipo texto, ela passa a ser texto e perde as propriedades de número. (Mais adiante explicarei)
Como utilizar uma variável?
Para usar uma variável, você deve declará-la dando um nome válido para ela, um tipo válido e um valor ou não, sendo que existem algumas regras para nomear variáveis que por padrão nunca devem ser iniciadas por nome ou caracteres especiais, com exceção do caracter underline “_”, mas para ficar fácil, sempre inicie o nome da variável com letra. Abaixo alguns exemplo:
string Nome; //Variável string chamada Nome que inicia sem valor string Endereco = "Av. Fortaleza, N° 15"; //Variável string chamada Endereco que inicia com valor "Av..." byte Idade; //Variável byte chamada Idade int Filhos = 2; //Variável int chamada Filhos que inicia com valor 2 bool Casado = False; //Variável bool que inicia com valor False
Reparem, algumas variáveis possuem o sinal de “=” a direita, simbolizando que elas já iniciam com um valor atribuído, enquanto as que não possuem o sinal de “=” iniciam em branco.
Obs.: Notem que todas as linhas terminam em “;”, pois em C# o “;” determina o final da linha, assim, a cada final de linha deve existir um “;”, dadas algumas exceções.
Quando uma variável é iniciada sem valor, em algum momento vamos atribuir um valor, e fazemos isso com o sinal de “=”, como seguem os exemplos:
Nome = "Aaron Pierre"; Idade = 35; Casado = True;
O que temos que atentar é que, variáveis texto devem possuir o valor atribuído entre aspas, enquanto que os valores numéricos não devem possuir as aspas, e nem mesmo o bool.
Se tentarmos atribuir um valor numérico com aspas, ou um valor texto sem aspas, ocorrerá erro. Abaixo seguem alguns exemplos de atribuições de valores erradas:
Nome = Aaron Pierre; Idade = "35"; Casado = "True";
Todos os casos acima geram erros.
Quando 1 + 1 = 11
Apesar das variáveis de texto aceitarem valores numéricos desde que dentro de aspas, os números não são números!
Vamos imaginar uma soma de duas variáveis, sendo X = 1 e Y = 1, teremos o seguinte código:
int X = 1; int Y = 1; X + Y = 2;
A grosso modo, este é o correto, e se fizermos isso com variáveis de texto?
string X = "1"; string Y = "1"; X + Y = "11";
Vejam que quando somamos números a matemática é aplicada, mas quando somamos strings, a matemática é ignorada, sendo os valores concatenados, ou seja, o caracter “1” da variável Y é adicionado a sequencia de string “1” da variável X, por isso que a soma resulta em “11” (reparem as aspas, denotando texto)!
Quando 5 / 2 = 2
Outro caso são as divisões, quando dividimos dois números inteiros e armazenamos em outra variável inteira, as frações são excluídas, dessa forma:
int X = 5; int Y = 2; int Resultado; Resultado = X / Y; O Resultado é 2
Porque o resultado é 2? Porque são dois números inteiros divididos entre si e gravados em uma variável inteira, logo as casas decimais somem, arredondando o valor do resultado.
Estes são alguns exemplos simples, existe muito mais coisa, muitos mais casos que aos poucos irei abordando.
Constantes
O que são as constantes? Nada mais são do que variáveis que nunca mudam de valor, elas iniciam com um valor e vão permanecer assim para sempre!
Por exemplo, digamos que quero calcular uma margem de lucro de 10% sobre vendas:
const double Margem = 1.1; double Preco = 100; double Total; Total = Preco * Margem; O resultado de Total é 110
Eu declarei uma constante chamada Margem, do tipo double com valor de 1.1, lembrando que multiplicar um valor por 1.1, é o mesmo que adicionar 10% ao valor original.
Se eu quiser modificar a margem de lucro para 50%, basta alterar a constante dessa forma:
const double Margem = 1.5; double Preco = 100; double Total; Total = Preco * Margem; O resultado de Total é 150
Viram como as constantes são simples? Na realidade elas são iguais as variáveis, porém, sempre com valor inicial e imutável.
Por hoje é só, acho que deixei esse assunto bem esclarecido pra muita gente.
Dúvidas, escrevam aqui embaixo.
Abraço