This article has been localized into Portuguese by the community.
Variáveis
Uma variável pode ser comparada a um guarda roupas, é essencial para um programador. No C#, uma variável é declarada desta forma:
<tipo de dados> <nome>;
Exemplo:
nome da string;
Essa é a versão mais básica, mas a variável ainda não tem valor. Você pode atribuir um em um momento posterior ou ao mesmo tempo que declarar, assim:
<data type> <name> = <value>;
Se essa variável não for local para o método em que você está trabalhando atualmente (por exemplo, uma variável de membro de classe), convém atribuir uma visibilidade à variável:
<visibilidade> <tipo do dado> <nome> = < valor >;
E um exemplo completo:
private string name = "John Doe";
A parte de visibilidade está relacionada a classes, para que você possa encontrar uma explicação mais completa sobre isso no capítulo sobre classes. Vamos nos concentrar na parte variável com um exemplo em que realmente usamos alguns deles:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string firstName = "John";
string lastName = "Doe";
Console.WriteLine("Name: " + firstName + " " + lastName);
Console.WriteLine("Please enter a new first name:");
firstName = Console.ReadLine();
Console.WriteLine("New name: " + firstName + " " + lastName);
Console.ReadLine();
}
}
}
Ok, muito disso já foi explicado, então vamos pular diretamente para a parte interessante. Primeiro de tudo, nós declaramos algumas variáveis do tipo string. Uma string simplesmente contém texto, como você pode ver, já que damos a eles um valor imediato. Em seguida, enviamos uma linha de texto para o console, onde usamos as duas variáveis. A string é composta usando os caracteres + para "coletar" as diferentes partes.
Em seguida, pedimos que o usuário insira um novo nome e, em seguida, usamos o método ReadLine() para ler a entrada do usuário no console e inseri-lo na variável firstName. Uma vez que o usuário pressiona a tecla Enter, o novo primeiro nome é atribuído à variável e, na próxima linha, exibimos a apresentação do nome novamente, para mostrar a alteração. Acabamos de usar nossa primeira variável e o recurso mais importante de uma variável: a capacidade de alterar seu valor em tempo de execução.
Outro exemplo interessante é fazer matemática. Aqui está um, baseado em muito do mesmo código que acabamos de usar:
int number1, number2;
Console.WriteLine("Please enter a number:");
number1 = int.Parse(Console.ReadLine());
Console.WriteLine("Thank you. One more:");
number2 = int.Parse(Console.ReadLine());
Console.WriteLine("Adding the two numbers: " + (number1 + number2));
Console.ReadLine();
Coloque isso no nosso método principal e experimente. O único novo "truque" que usamos aqui é o método int.Parse(). Ele simplesmente lê uma string e a converte em um inteiro. Como você pode ver, este aplicativo não faz nenhum esforço para validar a entrada do usuário, e se você inserir algo que não seja um número, uma exceção será levantada. Falaremos mais sobre isso depois.
Variáveis & alcance
Até agora, usamos apenas variáveis locais, que são variáveis definidas e usadas dentro do mesmo método. Em C#, uma variável definida dentro de um método não pode ser usada fora desse método - é por isso que ela é chamada de local. Se você estiver familiarizado com outras linguagens de programação, também poderá saber sobre variáveis globais, que podem ser acessadas de mais lugares, mas o C# não suporta o conceito de variáveis globais. Em vez disso, você pode definir um campo em uma classe, que pode ser acessado de todos os métodos dessa classe. Permita-me demonstrar isso com um exemplo:
using System;
namespace VariableScope
{
class Program
{
private static string helloClass = "Hello, class!";
static void Main(string[] args)
{
string helloLocal = "Hello, local!";
Console.WriteLine(helloLocal);
Console.WriteLine(Program.helloClass);
DoStuff();
}
static void DoStuff()
{
Console.WriteLine("A message from DoStuff: " + Program.helloClass);
}
}
}
Repare o membro helloClass, declarado no escopo da classe ao invés de dentro de um método - isso nos permite acessá-lo tanto de nosso método Main() como do método DoStuff(). Isso não é válido para a variável helloLocal, que foi declarada dentro do método Main() e somente pode ser utilizada dentro desse método específico.
O conceito de diferenciar entre o local em que uma variável foi declarada é chamado de scoping e impede que o seu código se torne uma grande confusão de variáveis que podem ser alteradas a partir de muitos locais. Outra técnica que nos ajuda com isso é chamada de visibilidade do membro (neste caso, ilustrada com a palavra-chave privada), que discutiremos no capítulo sobre classes.
Resumo
Variáveis permitem que você armazene dados de vários tipos, por exemplo strings de texto, números ou objetos personalizados. Existem variáveis locais, que são acessíveis dentro do método no qual ele foi definido, e então existem campos de classe, que podem ser acessados de todos os métodos da classe e até mesmo fora da classe, se a visibilidade permite isso.