Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os programas C# consistem em um ou mais arquivos. Cada arquivo contém zero ou mais namespaces. Um namespace contém tipos como classes, structs, interfaces, enumerações e delegados ou outros namespaces. O exemplo a seguir é o esqueleto de um programa C# que contém todos esses elementos.
using System;
Console.WriteLine("Hello world!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
}
O exemplo anterior usa declarações de nível superior para indicar o ponto de entrada do programa. Apenas um arquivo pode ter instruções de nível superior. O ponto de entrada do programa é a primeira linha de texto do programa nesse arquivo. Neste caso, é o Console.WriteLine("Hello world!");.
Você também pode criar um método estático chamado Main como ponto de entrada do programa, conforme mostrado no exemplo a seguir:
// A skeleton of a C# program
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
}
}
Nesse caso, o programa começa na chave de abertura do Main método, que é Console.WriteLine("Hello world!");
Criando e executando programas em C#
C# é uma linguagem compilada . Na maioria dos programas C#, você usa o dotnet build comando para compilar um grupo de arquivos de origem em um pacote binário. Em seguida, use o dotnet run comando para executar o programa. (Você pode simplificar esse processo porque dotnet run compila o programa antes de executá-lo, se necessário.) Essas ferramentas suportam uma linguagem rica de opções de configuração e opções de linha de comando. A dotnet interface de linha de comando (CLI), que está incluída no SDK do .NET, fornece muitas ferramentas para gerar e modificar arquivos C#.
A partir do C# 14 e do .NET 10, você pode criar aplicativos baseados em arquivos, o que simplifica a criação e a execução de programas em C#. Use o dotnet run comando para executar um programa contido em um único *.cs arquivo. Por exemplo, se o trecho a seguir estiver armazenado em um arquivo chamado hello-world.cs, você poderá executá-lo digitando dotnet run hello-world.cs:
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
A primeira linha do programa contém a #! sequência para shells Unix. A localização da dotnet CLI pode variar em diferentes distribuições. Em qualquer sistema Unix, se você definir a permissão executar (+x) em um arquivo C#, você pode executar o arquivo C# a partir da linha de comando:
./hello-world.cs
A origem desses programas deve ser um único arquivo, mas caso contrário, toda a sintaxe C# é válida. Você pode usar aplicativos baseados em arquivo para pequenos utilitários de linha de comando, protótipos ou outros experimentos. Os aplicativos baseados em arquivo permitem diretivas de pré-processador que configuram o sistema de compilação.
Expressões e declarações
Os programas em C# são construídos usando expressões e instruções. As expressões produzem um valor e as instruções executam uma ação:
Uma expressão é uma combinação de valores, variáveis, operadores e chamadas de método que avaliam para um único valor. As expressões produzem um resultado e podem ser usadas sempre que um valor é esperado. Os exemplos a seguir são expressões:
-
42(valor literal) -
x + y(operação aritmética) -
Math.Max(a, b)(chamada de método) -
condition ? trueValue : falseValue(expressão condicional) -
new Person("John")(criação de objetos)
Uma declaração é uma instrução completa que executa uma ação. As declarações não devolvem valores; em vez disso, eles controlam o fluxo do programa, declaram variáveis ou executam operações. Os exemplos a seguir são declarações:
-
int x = 42;(declaração) -
Console.WriteLine("Hello");(declaração de expressão - encapsula uma expressão de chamada de método) -
if (condition) { /* code */ }(declaração condicional) -
return result;(declaração de retorno)
A principal distinção: as expressões avaliam os valores, enquanto os enunciados executam ações. Algumas construções, como chamadas de método, podem ter ambos os comportamentos. Por exemplo, Math.Max(a, b) é uma expressão quando usada em int result = Math.Max(a, b);, mas torna-se uma instrução de expressão quando escrita sozinha como Math.Max(a, b);.
Para obter informações detalhadas sobre declarações, consulte Declarações. Para obter informações sobre membros com corpo de expressão e outros recursos de expressão, consulte Membros com corpo de expressão.
Seções relacionadas
Você aprende sobre esses elementos do programa na seção tipos do guia de fundamentos:
- Aulas
- Estruturas
- Namespaces (Espaços de nomes)
- Interfaces
- Enumerações
- Delegados
Especificação da linguagem C#
Para obter mais informações, consulte Conceitos básicos na Especificação da Linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso do C#.