Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Tabela de palavras reservadas contextuais
  2. separador de digitos
  3. valores literais
  4. Usando o typeof
  5. Usando o sizeof
  6. Usando o nameof

Para escrever nossos programas na linguagem C#, precisamos saber como declarar variáveis e constantes que vão armazenar os dados manipulados. Nesta parte do tutorial vamos aprender sobre variáveis, constantes e escopo.

Para ver os conceitos básicos sobre variáveis e constantes visite Portugol: Variáveis e Portugol: Constantes. Esses assuntos também foram vistos em Tutorial C: Variáveis e Tutorial C: Constantes.

As variáveis em C# são declaradas como na sintaxe mostrada abaixo. Os tipos de dados primitivos ou classes podem ser utilizados. A sintaxe é semelhante a linguagem C/C++.

Sintaxe
tipo_dado nome_variavel;
Onde
tipo_dado: Tipo de dado para armazenar dados da variável 

A linguagem C# permite que essa declaração seja feita em apenas uma linha. Nesse tipo de declaração, os nomes das variáveis são separados por ",".

Sintaxe
tipo_dado nome_variavel1, nome_variavel2, nome_variavelN;

A atribuição de valor a uma variável é feita utilizando o operador (=) podem ser em linha ou não.

Sintaxe
tipo_dado nome_variavel1 = valor;
tipo_dado nome_variavel1 = valor1, nome_variavel2 = valor2, nome_variavelN = valorN;
Exemplo 1
int valor;
float valor;
string texto;
Saída
-

A linguagem C# também permite a criação de constante. Essas têm seu conteúdo preservado durante toda a execução de nossos programas.

Tanto a declaração quanto a atribuição são semelhantes a declaração de variáveis. A diferença está na atribuição que no caso da constante deve ser feita no momento da declaração e o uso palavra reservada const. Assim como variáveis, a declaração de constante pode ser feita em apenas uma linha.

Sintaxe
const tipo_dado NOME_CONSTANTE = valor_inicial;
Exemplo 2
const int PI = 3.14159;
Saída

-

Uma vez declarada uma constante como no exemplo, qualquer atribuição de valor posterior a sua declaração irá gerar um erro de compilação:

Exemplo 3
const int PI = 3.14159;
PI =100; //irá gerar erro
Saída
-

Para a declaração de variáveis e constantes na linguagem C#, precisamos entender como funcionam os escopos local e classe. Os escopos serão melhor entendidos quando o assunto P.O.O for estudado em C#: POO.

Para C#, por ser uma linguagem O.O, as variáveis declaradas dentro de um método ou bloco de código são consideradas como tendo seu escopo local. Esse tipo de variável é criada durante a execução do método e descartada ao término da execução.

Exemplo 4
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int a = 256; //escopo local
        const int b = 1; //escopo local
    }
}
Saída
-

No exemplo cima, as váriváeis valor1 e valor2 são variáveis locais e só podem ser acessadas no escopo onde foram declaradas.

Variáveis e constantes declaradas fora dos métodos têm o escopo de classe. São declaradas como no exemplo abaixo.

Exemplo 5
public class MInhaClasse
{
    public int _codigo;  //campo
    pubicc string _nome; //campo
    
    public Nome{ //propriedade
        get { return _codigo; }
        set { _codigo = value}
    }
    
    //corpo omitido
}
Saída
-

Os campos declarados no escopo acima são chamadas de campos(fields) ou atributos(Attributes) de classe. O acesso envolvem conceitos de orientação a objetos. Esse conceitos podem ser vistos na seção C#:POO.

Para dar nomes aos identificadores(variáveis, constantes e etc), podemos utilizar as convensões Pascal, Snake ou Camel case. Essas convensões foram vistas em Portugol: Convensões.

Exemplo 6

nomeVariavel : Camel Case
NomeVariavel : Pascal Case
nome_variavel : Snake Case

A linguagem C#, por padrão, utiliza o convensão Pascal Case em seus identificadores, podendo ter variações dependendo do tipo de identificador como atributos, propriedade, parâmetros e outros.

Além das convensões vistas acima, a linguagem C# utiliza as seguintes regras que são suportadas para dar nomes aos nossos identificadores:

  1. Deve conter letras ( a-z, A-Z)
  2. O primeiro caractere pode utilizar $ ou _ seguido de caracteres definidos em item 1
  3. Constantes devem utilizar letras em caixa alta.
  4. Os nomes são case-sensitive. NOME e nome são visto como diferentes
  5. Uma palavra reservada não pode ser utilizada, exceto como no item 2
Exemplo 6

Nomes de identificadores incorretos

int 1idade;
int idade pessoa; //espaço entre nomes
int int; // palavra reservada;
int #idade;
Exemplo 7

Nomes de identificadores corretos

int idade;
int idade_pessoa;
int idadePessoa
int IdadePessoa

A escolha da convensão deve ser levada em consideração. Como boa prática, o uso das convensões escolhidas devem ser mantidas para se manter um padrão.

Agora que já temos conhecimento sobre os tipos básicos de dados presentes na linguagem C#, vamos ver alguns exemplos de declaração de variáveis com os tipos vistos em C# Básico: Tipos de Dados.

Exemplo 8
using System;
public class Program
{
	public static void Main()
	{
		float vfloat = 1.99F; //F = float
		int vint = 777;
		string str = "uma string em c#";
		char[] str2 = {'u','m','a',' ','s','t','r','i','n','g'};
		bool flag = false;
		byte codigo = 10;
		char caracter = 'Z';
		
		Console.Write("{0} {1} {2} {3} {4} {5} {6}",vfloat,vint,str,str2,flag,codigo,caracter);
	}
}

Vetores e matrizes são declarados e/ou iniciados como nos exemplos abaixo. Mais sobre esses tipos de dados podem ser vistos em C# Tipos Derivados: Matriz e C# Tipos Derivados: Vetor.

Exemplo 9
int[3] vetor = {0, 1,2};
int[2][2] matriz = {{1,2},{{3,4}};
int[] vetor;
int[][] matriz;

Outros exemplos de declaração envolvendos outros tipos de dados complexos serão vistos ao longo do tutorial e em futuras atualizações.

C# possui o operador is que é utilizado para comparação de tipos de dados de nossas variáveis e objetos. Esse operador retorna true ou false de acordo com a comparação realizada.

Sintaxe
objeto1 ou variavel1 is objeto2 ou variavel2;
Exemplo 6
using System;
public class Program
{
	public static void Main()
	{
		object obj = "uma string";
		bool ehString = obj is string;

		Console.WriteLine(ehString);
	}
}
Saída
True

O uso do is pode ser feito com outros tipos de dados além do tipo string utilizado no exemplo acima. Classes e Interfaces também podem ser utilizados, por exemplo.

Os comandos de decisão vistos em C# Comandos podem ser utilizados com o operador is na checagem de tipos dinâmicos, por exemplo.

Assim como várias linguagens, C# possui um conjunto palavras reservadas que são reconhecidas internamente como comandos e não podem ser utilizadas na declaração de identificadores.

abstract as catch base
bool break byte case
catch char checked class
const continue decimal default
delegate do double else
enum event explicit extern
false finally fixed float
for foreach goto if
implicit in int interface
is lock long namespace
new null object operator
out override params private
protected public readonly ref
return sbyte sizeof stackalloc
static string struct switch
this throw true try
typeof uint ulong unchecked
ushort using virtual void
volatile while - -

Algumas das palavras reservadas mencionadas apresentadas na tabela acima serão vistas em futuras atualizações deste tutorial.

  1. 05/08/2025 - revisão 2 - Correções: pontuais, sintaxes, links 'Objetivos' e 'target' de links internos; Adição: 'is', links internos
  2. 15/10/2024 - revisão 1 - Correção: Exemplos; Ajustes pontuais
  3. 05/03/2024 - versão inicial