C#: Sintaxe básica

1. Estrutura do programa

Um programa clássico em C# consiste em diretivas using, um namespace, um class e um método Main.

▶ Exemplo

CSHARP
using System;

namespace MyApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}
▶ Experimente
TEXT 📖 Somente leitura
Hello, World!

2. Instruções e ponto-e-vírgula

Todas as instruções em C# devem terminar com um ponto-e-vírgula ;. O ponto-e-vírgula é um terminador de instrução que indica ao compilador onde uma instrução termina. A ausência do ponto-e-vírgula causará um erro de compilação.

▶ Exemplo

CSHARP
using System;

namespace StatementDemo
{
    class Program
    {
        static void Main()
        {
            int x = 10;
            int y = 20;
            int sum = x + y;
            Console.WriteLine(sum);
        }
    }
}
▶ Experimente
TEXT 📖 Somente leitura
30

3. Blocos de código e chaves

Um bloco de código é delimitado por chaves { }, agrupando várias instruções em uma única unidade lógica. Espaços de nomes, classes, métodos, condicionais e loops exigem blocos de código. As chaves podem ser aninhadas.

CSHARP
namespace Outer
{
    namespace Inner
    {
        class MyClass
        {
            void MyMethod()
            {
                if (true)
                {
                    Console.WriteLine("nested block");
                }
            }
        }
    }
}

4. Indentação e estilo de código

Uma boa indentação facilita a leitura do código. A comunidade C# recomenda 4 espaços para a indentação. Existem dois estilos comuns de chaves:

CSHARP
class StyleA
{
    void Method()
    {
        Console.WriteLine("Allman style");
    }
}

class StyleB {
    void Method() {
        Console.WriteLine("K&R style");
    }
}

Dica: O Visual Studio usa o estilo Allman por padrão. O mais importante é a consistência dentro de um projeto.


5. Saída do console

Console.Write e Console.WriteLine são usados para exibir texto no console:

▶ Exemplo

CSHARP
using System;

namespace ConsoleDemo
{
    class Program
    {
        static void Main()
        {
            Console.Write("Hello");
            Console.Write(" ");
            Console.WriteLine("World");
            Console.WriteLine("Second line");
        }
    }
}
▶ Experimente
TEXT 📖 Somente leitura
Hello World
Second line

6. Caracteres de escape

Certos caracteres dentro de strings devem ser escapados com uma barra invertida \ para serem representados corretamente:

Sequência de escape Significado
\n Nova linha
\t Tab
\\ Barra invertida
\" Aspas duplas
\' Aspa simples

▶ Exemplo

CSHARP
using System;

namespace EscapeDemo
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Line1\nLine2");
            Console.WriteLine("Name\tAge");
            Console.WriteLine("Path: C:\\Users\\Doc");
            Console.WriteLine("He said \"Hello\"");
        }
    }
}
▶ Experimente
TEXT 📖 Somente leitura
Line1
Line2
Name	Age
Path: C:\Users\Doc
He said "Hello"

Aviso: Se uma string contiver muitas barras invertidas (como em caminhos de arquivos), use uma string literal @"...", na qual \ não precisa mais ser escapada.


7. Comentários

Comentários são notas destinadas aos desenvolvedores e são ignorados pelo compilador. O C# suporta três tipos de comentários:

CSHARP
using System;

namespace CommentDemo
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("hello");

            Console.WriteLine("world");

            /*
            Console.WriteLine("skipped");
            Console.WriteLine("also skipped");
            */

            Console.WriteLine("end");
        }

        /// <summary>
        /// Calculate the sum of two numbers
        /// </summary>
        static int Add(int a, int b)
        {
            return a + b;
        }
    }
}
TEXT 📖 Somente leitura
hello
world
end

Dica: Os comentários de documentação em XML (///) são comumente usados em APIs públicas. O Visual Studio exibe essas descrições quando o método é chamado.


8. Declarações de nível superior

A partir do C# 9, as instruções de nível superior permitem que você pule o código padrão namespace, class e Main, escrevendo a lógica diretamente no nível superior do arquivo. O compilador gera automaticamente o método de entrada.

▶ Exemplo

CSHARP
using System;

Console.WriteLine("Top-level statement!");
int result = 40 + 2;
Console.WriteLine($"The answer is {result}");
▶ Experimente
TEXT 📖 Somente leitura
Top-level statement!
The answer is 42

Dica: As instruções de nível superior só podem ser usadas em um arquivo por projeto. Usá-las em vários arquivos causa um erro de compilação.


9. Espaços de nomes no âmbito do arquivo

A partir do C# 10, os namespaces com escopo de arquivo permitem usar namespace MyApp; em vez do namespace tradicional em estilo de bloco, reduzindo um nível de aninhamento:

CSHARP
namespace MyApp;

class Program
{
    static void Main()
    {
        Console.WriteLine("File-scoped namespace");
    }
}

Isso equivale a:

CSHARP
namespace MyApp
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("File-scoped namespace");
        }
    }
}

Dica: Os namespaces no âmbito do arquivo tornam o código mais conciso e são recomendados para novos projetos.

❓ Perguntas Frequentes

P: O que acontece se eu esquecer um ponto-e-vírgula? R: O compilador exibirá um erro indicando a falta de um ponto-e-vírgula, e a localização do erro poderá apontar para a próxima linha. P: As diretivas de uso podem ser colocadas dentro de um namespace? R: Sim, mas geralmente são colocadas no início do arquivo para definir o escopo com mais clareza. P: Posso definir classes em um projeto que utilize instruções de nível superior? R: Sim, basta colocar as definições de classe após as instruções de nível superior. P: Posso definir vários namespaces em um namespace com escopo de arquivo? R: Não, cada arquivo só pode ter um namespace com escopo de arquivo.

📖 Resumo

📝 Exercícios

  1. Escreva um programa de console que utilize Console.Write e Console.WriteLine para exibir seu nome e sua idade
  2. Use caracteres de escape para exibir três linhas de texto em uma única instrução Console.WriteLine
  3. Reescreva uma estrutura clássica de programa utilizando instruções de nível superior
  4. Adicione comentários de documentação em XML a um método, incluindo as tags <summary> e <param>
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%