Compartilhar via


Estrutura geral de um programa C#

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.

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#.