Instruções (guia de programação de C#)
As ações que leva a um programa são expressos em instruções. Ações comuns incluem a declaração de variáveis, atribuindo valores, chamar métodos, o loop pelas coleções e a ramificação de um ou outro de bloco de código, dependendo de uma determinada condição. A ordem na qual as instruções são executadas em um programa é chamada de fluxo de controle ou fluxo de execução. O fluxo de controle pode variar sempre que um programa é executado, dependendo de como o programa reage à entrada que ele recebe em tempo de execução.
Uma instrução pode consistir em uma simples linha de código que termina com um ponto-e-vírgula, ou uma série de linhas de instruções em um Bloco. Um bloco de instrução está entre chaves {} e pode conter blocos aninhados. O código a seguir mostra dois exemplos de instruções simples e um bloco de instruções em várias linhas:
static void Main()
{
// Declaration statement.
int counter;
// Assignment statement.
counter = 1;
// Error! This is an expression, not an expression statement.
// counter + 1;
// Declaration statements with initializers are functionally
// equivalent to declaration statement followed by assignment statement:
int[] radii = { 15, 32, 108, 74, 9 }; // Declare and initialize an array.
const double pi = 3.14159; // Declare and initialize constant.
// foreach statement block that contains multiple statements.
foreach (int radius in radii)
{
// Declaration statement with initializer.
double circumference = pi * (2 * radius);
// Expression statement (method invocation). A single-line
// statement can span multiple text lines because line breaks
// are treated as white space, which is ignored by the compiler.
System.Console.WriteLine("Radius of circle #{0} is {1}. Circumference = {2:N2}",
counter, radius, circumference);
// Expression statement (postfix increment).
counter++;
} // End of foreach statement block
} // End of Main method body.
} // End of SimpleStatements class.
/*
Output:
Radius of circle #1 = 15. Circumference = 94.25
Radius of circle #2 = 32. Circumference = 201.06
Radius of circle #3 = 108. Circumference = 678.58
Radius of circle #4 = 74. Circumference = 464.96
Radius of circle #5 = 9. Circumference = 56.55
*/
Tipos de instruções
A tabela a seguir lista os diversos tipos de instruções em C# e suas palavras-chave associadas, com links para tópicos que contêm mais informações:
<strong>Categoria</strong> |
Palavras-chave C# / Observações |
---|---|
Instruções de declaração |
Uma instrução de declaração apresenta uma nova variável ou constante. Uma declaração de variável opcionalmente pode atribuir um valor à variável. Em uma declaração de constante, a atribuição é necessária. |
Instruções de expressão |
Instruções de expressão para calculam um valor necessário armazenar o valor em uma variável.
|
Instruções de seleção permitem que você efetuar a ramificação diferentes seções de código, dependendo de uma ou mais condições especificadas. Para obter mais informações, consulte os seguintes tópicos: |
|
Instruções de iteração permitem percorrer coleções como arrays ou executam o mesmo conjunto de instruções repetidamente até que uma condição especificada for satisfeita. Para obter mais informações, consulte os seguintes tópicos: |
|
Pular o controle de transferência de declarações para outra seção do código. Para obter mais informações, consulte os seguintes tópicos: |
|
Instruções de tratamento de exceção permitem recuperar-se normalmente de condições excepcionais que ocorrem em tempo de execução. Para obter mais informações, consulte os seguintes tópicos: |
|
Marcada e desmarcadas instruções permitem especificar se as operações numéricas são permitidas para causar um estouro quando o resultado é armazenado em uma variável que é muito pequena para conter o valor resultante. Para obter mais informações, consulte check- e não verificado. |
|
O fixed instrução |
A instrução fixed impede que o coletor de lixo realocando a uma variável móvel. Para obter mais informações, consulte fixa. |
O lock instrução |
A instrução lock permite limitar o acesso a blocos de código para apenas um thread por vez. Para obter mais informações, consulte lock. |
Instruções rotuladas |
Você pode fornecer um rótulo de uma instrução e, em seguida, use o goto palavra-chave para saltar para a instrução rotulada. (Consulte o exemplo na linha seguinte). |
A instrução vazia |
A instrução vazia consiste em um ponto e vírgula único. Ele não faz nada e pode ser usado em locais onde uma instrução é necessária, mas nenhuma ação precisa ser executada. Os exemplos a seguir mostram dois usos para uma instrução vazia: |
Instruções incorporadas
Algumas instruções, incluindo 370s1zax(v=vs.100).md, enquanto, para, e foreach, tenha sempre uma instrução incorporada que segue. Esta instrução incorporada pode ser uma única instrução ou várias instruções entre colchetes de {} em um bloco de instrução. Instruções de linha única, mesmo incorporadas podem ser delimitada por colchetes {}, conforme mostrado no exemplo a seguir:
// Recommended style. Embedded statement in block.
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
{
System.Console.WriteLine(s);
}
// Not recommended.
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
System.Console.WriteLine(s);
Uma instrução incorporada, não está entre colchetes {} não pode ser uma instrução de declaração ou uma instrução rotulada. Isso é mostrado no exemplo a seguir:
if(pointB == true)
//Error CS1023:
int radius = 5;
Coloque a instrução incorporada em um bloco para corrigir o erro:
if (b == true)
{
// OK:
System.DateTime d = System.DateTime.Now;
System.Console.WriteLine(d.ToLongDateString());
}
Blocos de instrução aninhados
Blocos de instrução podem ser aninhados, conforme mostrado no código a seguir:
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
{
if (s.StartsWith("CSharp"))
{
if (s.EndsWith("TempFolder"))
{
return s;
}
}
}
return "Not found.";
Instruções inacessíveis
Se o compilador determina que o fluxo de controle nunca pode alcançar um determinado demonstrativo sob qualquer circunstância, ele produzirá aviso CS0162, conforme mostrado no exemplo a seguir:
// An over-simplified example of unreachable code.
const int val = 5;
if (val < 4)
{
System.Console.WriteLine("I'll never write anything."); //CS0162
}
Seções relacionadas
Especificação da linguagem C#
Para obter mais informações, consulte C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.