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.
A partir do .NET 6, o modelo de projeto para novas aplicações de consola C# gera o seguinte código no ficheiro Program.cs:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Para versões .NET 5 e anteriores, o modelo da aplicação de consola gera o seguinte código:
using System;
namespace MyApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
No código anterior, o namespace real depende do nome do projeto.
Estas duas formas representam o mesmo programa. Ambos são válidos em C#. Quando você usa a versão mais recente, você só precisa escrever o corpo do método Main. O compilador gera uma Program classe com um método de ponto de entrada e coloca todas as tuas instruções de topo nesse método. O nome do método gerado não é Main — é um detalhe de implementação que o seu código não consegue referenciar diretamente. Não precisas de incluir os outros elementos do programa; O compilador gera-os para si. Para mais informações sobre o código que o compilador gera quando utiliza instruções de topo, consulte instruções de topo na secção de fundamentos do Guia C#.
Ao trabalhar com tutoriais que não estão atualizados para usar modelos .NET 6+, use uma destas duas opções:
- Use o novo estilo de programa, adicionando novas instruções de nível superior à medida que adiciona recursos.
- Converta o novo estilo do programa para o estilo antigo, com uma
Programclasse e umMainmétodo.
Se quiser usar os modelos antigos, veja Usar o estilo de programa antigo mais adiante neste artigo.
Use o novo estilo de programa
As funcionalidades que tornam o novo programa mais simples são as instruções de topo, as diretivas globais usinge as diretivas implícitasusing.
O termo instruções de nível superior significa que o compilador gera os elementos de classe e método para o programa principal. O compilador declara a classe gerada e o método de ponto de entrada no espaço de nomes global. Observe o código da nova aplicação e imagine que ele contém as instruções no método Main gerado por modelos anteriores, mas no namespace global.
Adicione mais instruções ao programa, tal como adiciona instruções ao seu Main método no estilo tradicional.
Aceder args (argumentos da linha de comandos),usar await, e definir o código de saída. Você pode até adicionar funções. O compilador cria-as como funções locais aninhadas dentro do método de ponto de entrada gerado. As funções locais não podem incluir quaisquer modificadores de acesso (por exemplo, public ou protected).
Tanto as instruções de topo como as diretivas implícitas using simplificam o código que compõe a sua aplicação. Para seguir um tutorial existente, adicione quaisquer novas instruções ao ficheiro Program.cs gerado pelo modelo. Imagina que as declarações que escreves estão entre as chaves abertas e fechadas no método Main nas instruções do tutorial.
Se preferires o formato antigo, copia o código do segundo exemplo deste artigo e continua o tutorial como antes.
Para mais informações sobre instruções de topo, consulte a exploração do tutorial sobre instruções de topo.
Diretivas implícitas using
O termo diretivas implícitas using significa que o compilador adiciona automaticamente um conjunto de using diretivas com base no tipo de projeto. Para aplicativos de console, as seguintes diretivas estão implicitamente incluídas no aplicativo:
using System;using System.IO;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Threading;using System.Threading.Tasks;
Outros tipos de aplicativo incluem mais namespaces que são comuns para esses tipos de aplicativo.
Se precisares using de diretivas que não estejam implicitamente incluídas, adiciona-as ao ficheiro .cs que contém instruções de topo ou a outros ficheiros .cs . Para using diretivas que necessitas em todos os ficheiros .cs de uma aplicação, utiliza diretivas globaisusing.
Desativar diretivas implícitas using
Para remover este comportamento e controlar manualmente todos os namespaces do seu projeto, adicione <ImplicitUsings>disable</ImplicitUsings> ao ficheiro de projeto no elemento <PropertyGroup>, como mostrado no exemplo seguinte.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Diretivas globais using
Uma diretiva global using importa um namespace para toda a sua aplicação em vez de um único ficheiro. Adicione estas diretivas globais incluindo um <Using> elemento no ficheiro do projeto ou adicionando a global using diretiva a um ficheiro de código.
Para remover uma diretiva using estiver ativada com <ImplicitUsings>enable</ImplicitUsings>, adicionar um item <Using> seguinte remove o System.Net.Http espaço de nomes daqueles que são importados implicitamente.
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
Use o estilo de programa antigo
A partir do .NET SDK 6.0.300, o modelo console tem uma opção --use-program-main. Usa-o para criar um projeto de consola que não use instruções de topo e tenha um Main método.
dotnet new console --use-program-main
O resultado gerado Program.cs é o seguinte:
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Usa o estilo de programa antigo no Visual Studio
Quando crias um novo projeto, os passos de configuração seguem até à página de configuração de informações adicionais . Nesta página, selecione a caixa Não utilizar declarações de nível superior.
Depois de criado o seu projeto, o
Program.csconteúdo será o seguinte:namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Observação
O Visual Studio preserva o valor da opção para a próxima vez que criares um projeto com base no mesmo modelo. Se da última vez que criou um projeto de Aplicação de Consola, tinha a opção Não usar instruções de topo selecionada, essa opção estará selecionada quando criar o próximo projeto de Aplicação de Consola.
O conteúdo do ficheiro Program.cs pode ser diferente para corresponder ao estilo de código definido nas definições globais do editor de texto Visual Studio ou no ficheiro EditorConfig.
Para mais informações, consulte Criar definições de editor portátil e personalizado com EditorConfig e Opções, Editor de Texto, C#, Avançado.