Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Aanbeveling
Nieuw bij het ontwikkelen van software? Begin eerst met de handleiding Aan de slag. Ze begeleiden u bij het schrijven van uw eerste C#-programma's voordat u meer te weten komt over de programmastructuur.
Ervaren in een andere taal? Misschien wilt u de sectie Aan de slag voor C#-specifieke syntaxis overslaan en vervolgens hier terugkomen.
U bouwt C#-programma's op basis van deze kernbouwstenen: naamruimten organiseren uw typen, typen (klassen, structs, interfaces, enums en gemachtigden) definiëren gedrag en gegevens, en instructies en expressies voeren tijdens runtime werk uit. De manier waarop u het toegangspunt structureert, is afhankelijk van de toepassingsstijl die u kiest.
Uw toepassingsstijl kiezen
Wanneer u een C#-programma maakt, maakt u twee onafhankelijke keuzes over het structuren ervan:
-
Op bestand of project gebaseerd?
- Een app op basis van bestanden wordt uitgevoerd vanuit één
.csbestand zonder projectbestand. - Een project-app maakt gebruik van een
.csprojbestand en kan meerdere bronbestanden omvatten.
- Een app op basis van bestanden wordt uitgevoerd vanuit één
-
Instructies of
Mainmethode op het hoogste niveau?- Met instructies op het hoogste niveau kunt u uitvoerbare code rechtstreeks boven aan een bestand schrijven.
- Een
Mainmethode verpakt het invoerpunt in een expliciete statische methode.
Zowel op project gebaseerde apps als op bestanden gebaseerde apps ondersteunen een van beide invoerpuntstijlen.
Op bestanden gebaseerde apps versus projectgebaseerde apps
Vanaf C# 14 en .NET 10 kunt u met bestandsgebaseerde apps een programma uitvoeren dat is opgenomen in één *.cs bestand zonder een projectbestand. Sla de volgende code op in een bestand met de naam hello-world.cs en voer deze uit met dotnet run hello-world.cs of dotnet hello-world.cs:
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
Opmerking
Met de #! regel kunnen Unix-shells het bestand rechtstreeks uitvoeren. Stel op een Unix-systeem de machtiging uitvoeren (+x) in en voer het bestand uit vanaf de opdrachtregel.
Op bestanden gebaseerde apps ondersteunen alle C#-syntaxis en kunnen preprocessorrichtlijnen gebruiken om het buildsysteem te configureren. Gebruik op bestanden gebaseerde apps voor kleine opdrachtregelprogramma's, prototypen en experimenten. Een app op basis van bestanden bestaat uit één bestand in een map:
my-app/
└── hello-world.cs
Op project gebaseerde apps maken gebruik van een .csproj bestand en de .NET CLI-opdrachtendotnet newdotnet build en dotnet run werkstroom. Kies project-apps wanneer uw programma meerdere bestanden omvat of een gedetailleerde buildconfiguratie nodig heeft. Een project-app bevat een projectbestand naast een of meer bronbestanden:
my-app/
├── my-app.csproj
├── Program.cs
├── Models/
│ └── Person.cs
└── Services/
└── GreetingService.cs
Als uw op bestanden gebaseerde app groeit, kunt u deze eenvoudig converteren naar een project-app. Voer dotnet project convert uit om een projectbestand te genereren op basis van uw bestaande bronbestand.
Als u weet dat uw app vanaf het begin meerdere bronbestanden nodig heeft, begint u met een project-app. U vermijdt de conversiestap en kunt uw code direct in afzonderlijke bestanden ordenen.
Instructies op het hoogste niveau versus Main methode
Met behulp van instructies op het hoogste niveau kunt u uitvoerbare code rechtstreeks in één bestand schrijven zonder deze in een klasse en Main methode te verpakken. Deze stijl is de standaardinstelling wanneer u een nieuwe console-app maakt met dotnet new console. In het volgende voorbeeld ziet u een modern C#-programma dat gebruikmaakt van instructies op het hoogste niveau:
Console.WriteLine("Hello, World!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
}
Slechts één bestand in een project kan instructies op het hoogste niveau bevatten en het toegangspunt is de eerste regel programmatekst in dat bestand. Wanneer u grotere programma's bouwt, neemt u meer programma-elementen op.
U kunt ook een expliciete statische Main methode definiëren als toegangspunt van het programma:
// A skeleton of a C# program using an explicit Main method
namespace YourNamespace;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Beide invoerpuntstijlen werken met op bestanden gebaseerde en projectgebaseerde apps. Beide stijlen ondersteunen dezelfde functies.
C#-programma's bouwen en uitvoeren
C# is een gecompileerde taal. Voor project-apps gebruikt u de dotnet build opdracht om bronbestanden te compileren in een binair pakket. Gebruik dotnet run dit om in één stap te bouwen en uit te voeren. De dotnet CLI, opgenomen in de .NET SDK, biedt veel hulpprogramma's voor het maken, bouwen en beheren van C#-projecten.
Voor bestand-gebaseerde apps compileert dotnet run hello-world.cs en voert het ene bestand rechtstreeks uit. Er is geen projectbestand vereist.
Expressies en uitspraken
Als u de Aan de slag tutorials hebt gevolgd, hebt u al uitdrukkingen en instructies geschreven. Elke coderegel die u hebt getypt, was een of de andere regel (of beide). Nu gaan we deze termen definiëren.
Expressies en instructies zijn de fundamentele bouwstenen van een C#-programma. Een expressie produceert een waarde. Een instructie voert een actie uit en eindigt meestal in een puntkomma.
Hier volgen uitdrukkingen:
-
42(letterlijke waarde) -
x + y(rekenkundige bewerking) -
Math.Max(a, b)(methode-aanroep die een waarde produceert) -
condition ? trueValue : falseValue(voorwaardelijke expressie) -
new Person("John")(object aanmaken)
Een instructie voert een actie uit. Instructies regelen de programmastroom, declareren variabelen of roepen bewerkingen aan. Hieronder ziet u uitspraken:
-
int x;verklaring -
int x = 42;(verklaring met initialisatie) -
Console.WriteLine("Hello");(methodeaanroep) -
if (condition) { /* code */ }(voorwaardelijke verklaring) -
return result;(retourinstructie)
Statements bevatten vaak expressies, en expressies kunnen genest worden in andere expressies. De volgende declaratie wijst bijvoorbeeld f toe aan het resultaat van een optellingsexpressie. Met deze toevoegingsexpressie worden de resultaten van twee aanroepexpressies van de methode toegevoegd:
var maxResult = Math.Max(a, b) + Math.Max(c, d);
Zie Verklaringen voor gedetailleerde informatie over verklaringen. Zie Ledematen met expressiebodems voor meer informatie over expressiebodems.