No desenvolvimento de software um recurso muito utilizado é a variável e este artigo pretende demonstrar como criá-las, os tipos e algumas regras para criação das mesmas.
As variáveis são utilizadas para armazenar informações na memória em tempo de execução da aplicação, isso significa que essas informações estarão disponíveis enquanto a aplicação estiver em execução e, mais precisamente, enquanto a classe ou método em que ela foi criada estiver em execução.
No C# toda variável deve ter: modificador de acesso, tipo de dados e nome.
Regras para nomes de variáveis
A regra para nomear uma variável é que o nome dela sempre comece por uma letra ou _. No meio do nome podem-se usar números, mas não se devem usar caracteres especiais e também não pode ser uma palavra reservada. Entende-se por palavras reservadas os comandos do C# e que são facilmente identificadas quando digitadas, por ficarem da cor azul. Exemplos de palavras que não podem ser utilizadas são: if, for, while, string e etc.
Exemplo de variável:
int numero;
No exemplo, int é o tipo e numero é o nome da variável. Mas, e o modificador?
Como dito anteriormente, toda variável deve ter o modificador de acesso. No exemplo acima não tem um modificador porque no C# quando não há um modificador em uma variável e é atribuído a ele o modificador padrão private.
Modificadores
No caso das varáveis, os modificadores definem a visibilidade delas, se elas poderão ser acessadas por outras classes que não seja a sua própria, se serão acessadas somente por classes derivadas a classe que ela está e assim por diante, como mostra a Código 1.
public int numero;
No C# existem os seguintes modificadores:
Modificador | Funcionamento |
---|---|
public | O acesso não é restrito. |
protected | O acesso é limitado às classes ou tipos derivados daclasse que a variável está. |
Internal | O acesso é limitado ao conjunto de módulos(assembly) corrente. |
protected internal | O acesso é limitado ao conjunto corrente ou tiposderivados da classe recipiente. |
private | O acesso é limitado à classe que a variável está. |
Quando uma variável é declarada sem um modificador de acesso o compilador atribui o modificador padrão private.
Tipos de dados
C# é uma linguagem de programação fortemente tipada, isso significa que todas as variáveis e objetos devem ter um tipo declarado. Os tipos de dados são divididos em value types e reference types. Os value types são derivados de System.ValueType e reference types são derivados de System.Object.
O valor atribuído a uma variável deve estar de acordo com o seu tipo declarado. Por exemplo uma variável declarada com o tipo int não pode receber um valor numérico de ponto flutuante (de tipo double, float ou decimal).
Variáveis Value Type
As variáveis value type contém dentro delas um valor, enquanto as reference type contém uma referência. Isso significa que se copiar uma variável do tipo value type para dentro de outra o valor é copiado e, se o mesmo for feito com uma do tipo reference type será copiado apenas a referência do objeto.
Dentro de Value Type existem duas categorias: struct e enum.
- Struct: é dividida em tipos numéricos, bool e estruturas personalizadas pelo usuário.
Os tipos numéricos são os presentes na Tabela 2.
Tipo de dados Intervalo byte 0 ..255 sbyte -128 ..127 short -32,768 ..32,767 ushort 0 ..65,535 int -2,147,483,648 ..2,147,483,647 uint 0 ..4,294,967,295 long -9,223,372,036,854,775,808..9,223,372,036,854,775,807 ulong 0 ..18,446,744,073,709,551,615 float -3.402823e38 ..3.402823e38 double -1.79769313486232e308 ..1.79769313486232e308 decimal -79228162514264337593543950335..79228162514264337593543950335 char U+0000 .. U+ffff - Enum: permite criar um tipo que é formado por várias constantes. Normalmente é usada quando em algum momento existe a necessidade de um atributo que pode ter múltiplos valores, como por exemplo, em uma aplicação de venda que tem a tela de pedidos: cada pedido tem a sua situação que pode ser Aberto, Faturado e Cancelado. Para criar a classe Pedido, o tipo do atributo situação será int, conforme mostra a Código 2.
class Pedido { public int numero; public DateTime dataHora; public int situacao; }
Agora é necessária a criação do Enum Situacao. Um Enum é criado da mesma porque se cria uma classe, mas ao invés de utilizar a palavra class usa-se enum, conforme mostra a Código 3.
enum Situacao { Aberto, Faturado, Cancelado } }
Na Código 4 contém o código da utilização deste Enum que foi criado.
class Program { static void Main(string[] args) { Pedido pedido = new Pedido(); pedido.numero = 1; pedido.dataHora = DateTime.Now; pedido.situacao = (int) Situacao.Faturado; Console.WriteLine("Número do pedido: " + pedido.numero.ToString()); Console.WriteLine("Hora: " + pedido.dataHora.ToString()); Console.WriteLine("Situação: " + pedido.situacao.ToString()); Console.ReadLine(); } }
O Enum por padrão retorna int e neste exemplo temos três opções, onde cada uma possui um índice. Então quando o valor de um Enum é atribuído a um outro atributo ,o que é atribuído é seu índice, no caso do exemplo da Código 4 é atribuído o valor 1.
Valores padrão
Todo tipo de dado tem um valor padrão que será atribuído a uma variável sem valor. Vejamos os principais casos de valor padrão:
- Os tipos inteiros (int) e de ponto flutuante (double, float, decimal) tem o valor padrão 0.
- Tipo bool representa um valor que pode ser verdadeiro ou falso, o seu valor padrão é false.
Operador new
Ao declarar uma nova variável podemos atribuir a instância de um tipo que preenche a variável com seu valor padrão.
Podemos ver um exemplo do uso do operador new na Código 5.
var x = new int(); // a variável x recebe o valor padrão 0
Variáveis Reference Types
As variáveis reference type armazenam apenas a referência do objeto. Os tipos de referência são: class, interface, delegate, object, string e Array.
- Tipo object: todos os tipos são derivados da classe Object, sendo assim é possível converter qualquer tipo para object.
- Tipo string: é utilizado para se armazenar caracteres e uma string deve estar entre aspas, como mostra a Código 6.
string nome = "DevMedia";
Para concatenar (juntar) uma ou mais strings é usando o sinal de +, como mostra a Código 7.
string a = "C#"; string b = ".net"; string c = a + b;
Outro recurso também é a possibilidade dese obter um determinado caractere de uma string, como mostra a Código 8.
string a = "C#"; string b = ".net"; string c = a + b; char d = c[3];
A variável d vai ficar com o valor da letra n que é a letra que está no índice 3, conforme informado no código.
Também é possível fazer a mesma coisa comum a palavra, como mostra a Código 9.
Código 9. Pegando um caractere de uma palavra.
char d = "C#.net"[3];
Para se obter o tamanho de uma variável do tipo string deve-se usar a propriedade Length. Com essa propriedade se obtém o número de caracteres de uma string.string carro = "Toyota Corolla"; Console.WriteLine(carro.Length); // 14
- Tipo array: utilizado ao trabalhar com coleções de dados que possuem um tamanho previamente definido, armazenam múltiplas variáveis de um mesmo tipo.
A grande vantagem do array está no fato de serem estruturas indexadas, ou seja, os itens do array podem ser acessados através de índices, o que garante grande velocidade para essas operações.
A declaração padrão de um array obedece a seguinte estrutura:
tipo[] nomeDoArray = {item, item, item};
É adicionado colchetes [] após o tipo da variável e o seu conteúdo fica entre chaves {}, separado por vírgula ,.
Por exemplo, para um array do tipo string contendo formas geométricas, a declaração seria da seguinte forma:
string[] array = {"Quadrado", "Círculo", "Triângulo", "Retângulo"};
No código acima criamos um array do tipo string contendo as seguintes formas: "Quadrado", "Círculo", "Triângulo" e "Retângulo".
Agora para obter algum dos itens armazenados no array, buscamos o seu valor pelo seu índice no array.Exemplo de uso:
string[] array = {"Quadrado", "Círculo", "Triângulo", "Retângulo"}; string forma = array[2];
Lembrando que um índice começa do zero, no exemplo acima a variável forma irá buscar o valor do terceiro índice do array, retornando o valor "Triângulo".
Para se obter o tamanho de um array deve-se usar a propriedade Length. Com essa propriedade se obtém o número de índices em um array.string[] frutas = {“Laranja”, “Pera”, “Banana”}; Console.WriteLine(frutas.Length);
Será impresso no console o numero 3.
Constantes
Em algumas situações trabalhamos com algum valor que não precisa ser alterado. Por exemplo uma medida que é padrão. Em casos como esses, utilizamos constantes, que tem características semelhantes a uma variável, mas que tem de receber um valor em sua declaração que não será alterado, conforme a Código 10.
const double medida = 10.5;
Para declarar uma constante usamos a palavra reservada const antes de informar seu tipo e seu nome.
Existem muitas outras operações para fazer com variáveis e constantes, mas isso é assunto para um próximo artigo. O que foi mostrado nesse artigo são passos iniciais para entender como funcionam as variáveis e constantes no C#.
Confira outros conteúdos:
Por Devmedia Em 2019Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento integral
12x no cartão
De: R$ 69,00
Por: R$ 59,00
Total: R$ 708,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento facilitado
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 64,00 /mês
Tempo mínimo: 12 messes
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado! Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um Full-Stack Dev!Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.
Aceitar - Enum: permite criar um tipo que é formado por várias constantes. Normalmente é usada quando em algum momento existe a necessidade de um atributo que pode ter múltiplos valores, como por exemplo, em uma aplicação de venda que tem a tela de pedidos: cada pedido tem a sua situação que pode ser Aberto, Faturado e Cancelado. Para criar a classe Pedido, o tipo do atributo situação será int, conforme mostra a Código 2.