Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 o ponto de entrada do programa. Somente um arquivo pode ter instruções de nível superior. O ponto de entrada do programa é a primeira linha de texto do texto do programa nesse arquivo. Nesse caso, é Console.WriteLine("Hello world!");.
Você também pode criar um método estático chamado Main como o 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!");
Compilando e executando programas 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 dão suporte a uma linguagem avançada de opções de configuração e comutadores de linha de comando. A dotnet CLI (interface de linha de comando), 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 arquivo, o que simplifica a criação e a execução de programas C#. Use o dotnet run comando para executar um programa contido em um único *.cs arquivo. Por exemplo, se o snippet a seguir for 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 de shells unix. O local da dotnet CLI pode variar em distribuições diferentes. Em qualquer sistema Unix, se você definir a permissão executar (+x) em um arquivo C#, poderá executar o arquivo C# na 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. Aplicativos baseados em arquivo permitem diretivas de pré-processador que configuram o sistema de build.
Expressões e declarações
Os programas C# são criados 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 são avaliadas como 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 objeto)
Uma declaração é uma instrução completa que executa uma ação. Instruções não retornam valores; Em vez disso, eles controlam o fluxo do programa, declaram variáveis ou executam operações. Os exemplos a seguir são afirmações:
-
int x = 42;(declaração) -
Console.WriteLine("Hello");(instrução de expressão - encapsula uma expressão de chamada de método) -
if (condition) { /* code */ }(instrução condicional) -
return result;(instrução de retorno)
A distinção chave: expressões são avaliadas como valores, enquanto as instruções executam ações. Alguns constructos, como chamadas de método, podem ser ambos. Por exemplo, Math.Max(a, b) é uma expressão quando usada em int result = Math.Max(a, b);, mas se torna 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 de expressão e outros recursos de expressão, consulte Membros de expressão.
Seções relacionadas
Você aprenderá sobre esses elementos de programa na seção "tipos " do guia de conceitos básicos.
Especificação da linguagem C#
Para obter mais informações, veja Noções básicas na Especificação da linguagem C#. A especificação de idioma é a fonte definitiva para a sintaxe e o uso de C#.