Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vanaf .NET 6 genereert de projectsjabloon voor nieuwe C#-console-apps de volgende code in het bestand Program.cs:
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Voor .NET 5 en eerdere versies genereert de console-appsjabloon de volgende code:
using System;
namespace MyApp
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
In de voorgaande code is de werkelijke naamruimte afhankelijk van de projectnaam.
Deze twee formulieren vertegenwoordigen hetzelfde programma. Beide zijn geldig in C#. Wanneer u de nieuwere versie gebruikt, hoeft u alleen de hoofdtekst van de methode Main te schrijven. De compiler genereert een Program klasse met een invoerpuntmethode en plaatst al uw instructies op het hoogste niveau in die methode. De naam van de gegenereerde methode is niet Main. Het is een implementatiedetails waarnaar uw code niet rechtstreeks kan verwijzen. U hoeft de andere programma-elementen niet op te nemen; de compiler genereert deze voor u. Zie de basisprincipes van de C#-handleiding voor meer informatie over de code die de compiler genereert wanneer u instructies op het hoogste niveau gebruikt.
Wanneer u werkt met zelfstudies die niet zijn bijgewerkt voor het gebruik van .NET 6+ sjablonen, gebruikt u een van de volgende twee opties:
- Gebruik de nieuwe programmastijl en voeg nieuwe instructies op het hoogste niveau toe terwijl u functies toevoegt.
- Converteer de nieuwe programmastijl naar de oudere stijl, met een
Programklasse en eenMainmethode.
Zie De oude programmastijl verderop in dit artikel gebruiken als u de oude sjablonen wilt gebruiken.
De nieuwe programmastijl gebruiken
De functies die het nieuwe programma eenvoudiger maken, zijn instructies op het hoogste niveau, globale using richtlijnen en impliciete using instructies.
De term instructies op het hoogste niveau betekent dat de compiler de klasse- en methode-elementen voor uw hoofdprogramma genereert. De compiler declareert de gegenereerde klasse- en toegangspuntmethode in de globale naamruimte. Bekijk de code voor de nieuwe toepassing en stel dat deze de instructies bevat in de Main methode die is gegenereerd door eerdere sjablonen, maar in de globale naamruimte.
Voeg meer instructies toe aan het programma, net zoals u instructies toevoegt aan uw Main methode in de traditionele stijl.
Access args (opdrachtregelargumenten), gebruik await, en de afsluitcode instellen. U kunt zelfs functies toevoegen. De compiler maakt deze als lokale functies die zijn genest binnen de gegenereerde invoerpuntmethode. Lokale functies kunnen geen toegangsaanpassingen bevatten (bijvoorbeeld public of protected).
Zowel instructies op het hoogste niveau als impliciete using instructies vereenvoudigen de code waaruit uw toepassing bestaat. Als u een bestaande zelfstudie wilt volgen, voegt u nieuwe instructies toe aan het Program.cs-bestand dat door de sjabloon is gegenereerd. Stel dat de uitspraken die u schrijft zich tussen de open en afsluitende accolades in de Main methode van de zelfstudie bevinden.
Als u liever de oudere indeling gebruikt, kopieert u de code uit het tweede voorbeeld in dit artikel en gaat u verder met de zelfstudie zoals voorheen.
Zie de zelfstudie over instructies op het hoogste niveau voor meer informatie over instructies op het hoogste niveau.
Impliciete using instructies
De term impliciete using instructies betekent dat de compiler automatisch een reeks richtlijnen toevoegt op basis van using het projecttype. Voor consoletoepassingen zijn de volgende instructies impliciet opgenomen in de toepassing:
using System;using System.IO;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Threading;using System.Threading.Tasks;
Andere toepassingstypen bevatten meer naamruimten die gebruikelijk zijn voor deze toepassingstypen.
Als u instructies nodig hebt using die niet impliciet zijn opgenomen, voegt u deze toe aan het .cs-bestand met instructies op het hoogste niveau of aan andere .cs bestanden. Gebruik usingusing voor instructies die u nodig hebt in alle .cs bestanden in een toepassing.
Impliciete using instructies uitschakelen
Als u dit gedrag wilt verwijderen en alle naamruimten in uw project handmatig wilt beheren, voegt u dit toe <ImplicitUsings>disable</ImplicitUsings> aan het projectbestand in het <PropertyGroup> element, zoals wordt weergegeven in het volgende voorbeeld:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<ImplicitUsings>disable</ImplicitUsings>
</PropertyGroup>
</Project>
Globale using richtlijnen
Een globale using richtlijn importeert een naamruimte voor uw hele toepassing in plaats van één bestand. Voeg deze globale instructies toe door een <Using> item in het projectbestand op te slaan of de global using instructie toe te voegen aan een codebestand.
Als u een specifieke impliciete using instructie wilt verwijderen, voegt u een <Using> item met een Remove kenmerk toe aan uw projectbestand. Bijvoorbeeld, als de functie voor impliciete using instructies is ingeschakeld met <ImplicitUsings>enable</ImplicitUsings>, dan wordt met het volgende <Using> item de System.Net.Http naamruimte verwijderd van de naamruimten die impliciet worden geïmporteerd.
<ItemGroup>
<Using Remove="System.Net.Http" />
</ItemGroup>
De oude programmastijl gebruiken
Vanaf .NET SDK 6.0.300 heeft de sjabloon console een optie --use-program-main. Gebruik dit om een consoleproject te maken dat geen instructies op het hoogste niveau gebruikt en een Main methode heeft.
dotnet new console --use-program-main
Het gegenereerde Program.cs is als volgt:
namespace MyProject;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
De oude programmastijl gebruiken in Visual Studio
Wanneer u een nieuw project maakt, leiden de instellingsstappen naar de instellingspagina Aanvullende informatie. Schakel op deze pagina het selectievakje Geen instructies op het hoogste niveau gebruiken in.
Nadat uw project is gemaakt, is de
Program.csinhoud als volgt:namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Notitie
Visual Studio behoudt de optiewaarde voor de volgende keer dat u een project maakt op basis van dezelfde sjabloon. Als u voor het laatst een console-app-project hebt gemaakt met het selectievakje Geen instructies op het hoogste niveau gebruiken ingeschakeld, wordt deze optie ingeschakeld wanneer u het volgende Console App-project maakt.
De inhoud van het bestand Program.cs kan afwijken van de codestijl die is gedefinieerd in de algemene instellingen van de teksteditor Visual Studio of het bestand EditorConfig.
Zie Draagbare, aangepaste editorinstellingen maken met EditorConfig en Opties, Teksteditor, C#, Geavanceerd voor meer informatie.