Primaire constructors voor klassen
Declareer constructorparameters in de typekop.
Primaire constructors voor klassen is een gratis C# Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject C# Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C# Academy bevat in totaal 4 lessen.
Wat is een primaire constructor?
Met een primaire constructor kun je constructorparameters rechtstreeks in de klassekop declareren, zoals bij class Point(int x, int y). De parameters vallen binnen bereik in de hele hoofdtekst van de klasse.
using System;
class Point(int x, int y) {
public int X => x;
public int Y => y;
}
var p = new Point(3, 4);
Console.WriteLine(p.X + "," + p.Y); // 3,4Geen boilerplate meer
Vóór primaire constructors schreef je een constructorhoofdtekst alleen om parameters naar velden te kopiëren. Nu declareert de kop de parameters en verwijs je er rechtstreeks naar.
using System;
class Greeter(string name) {
public string Greet() => "Hello, " + name + "!";
}
Console.WriteLine(new Greeter("Ada").Greet()); // Hello, Ada!Parameters vallen overal binnen bereik
Primaire constructorparameters kunnen in eigenschapsinitialisatoren, methodehoofden en veldinitialisatoren overal in de klasse worden gebruikt.
using System;
class Circle(double radius) {
public double Area => Math.PI * radius * radius;
public double Circumference => 2 * Math.PI * radius;
}
var c = new Circle(2);
Console.WriteLine(Math.Round(c.Area, 2)); // 12.57Velden en eigenschappen initialiseren
Je kunt een parameter van een primaire constructor gebruiken om een veld of eigenschap tijdens de declaratie te initialiseren.
using System;
class Account(decimal initial) {
public decimal Balance { get; private set; } = initial;
public void Deposit(decimal amount) => Balance += amount;
}
var a = new Account(100m);
a.Deposit(50m);
Console.WriteLine(a.Balance); // 150Validatie in de kop
Je kunt parameters van een primaire constructor inline valideren met throw-expressies bij het toewijzen aan een veld.
using System;
class Person(string name) {
public string Name { get; } =
string.IsNullOrWhiteSpace(name)
? throw new ArgumentException("name required")
: name;
}
Console.WriteLine(new Person("Lin").Name); // LinExtra constructors toevoegen
Een klasse met een primaire constructor kan nog steeds extra constructors declareren, maar die moeten met : this(...) doorverwijzen naar de primaire constructor.
using System;
class Box(int width, int height) {
public int Width => width;
public int Height => height;
public Box(int size) : this(size, size) { }
}
var sq = new Box(5);
Console.WriteLine(sq.Width + "x" + sq.Height); // 5x5Hoofdteksten van primaire constructors
Primaire constructors hebben geen eigen hoofdtekst. Logica die tijdens het maken moet worden uitgevoerd, hoort in veldinitialisatoren of in een reguliere constructor die doorverwijst.
using System;
class Logger(string prefix) {
private readonly string tag = "[" + prefix + "]";
public void Log(string msg) => Console.WriteLine(tag + " " + msg);
}
new Logger("INFO").Log("started"); // [INFO] startedNiet automatisch openbare eigenschappen
In tegenstelling tot records maakt een primaire constructor op een gewone klasse geen openbare eigenschappen. De parameters zijn privé voor de klasse, tenzij je ze zelf beschikbaar maakt.
using System;
class Temp(double celsius) {
// celsius is NOT a public property here
public double Fahrenheit => celsius * 9 / 5 + 32;
}
Console.WriteLine(new Temp(100).Fahrenheit); // 212Vastgelegde parameters worden velden
Wanneer een parameter van een primaire constructor in een methode wordt gebruikt, en niet alleen in een initialisator, legt de compiler de parameter vast in een verborgen veld zodat die na het maken van de instantie behouden blijft.
using System;
class Counter(int start) {
private int value = start;
public int Next() => value++;
}
var c = new Counter(10);
Console.WriteLine(c.Next()); // 10
Console.WriteLine(c.Next()); // 11Eenvoudigere dependency injection
Primaire constructors zijn populair voor dependency injection: declareer services in de kop en gebruik ze in methoden, zonder handmatig velden toe te wijzen.
using System;
interface IClock { string Now(); }
class FakeClock : IClock { public string Now() => "12:00"; }
class Service(IClock clock) {
public string Report() => "Time is " + clock.Now();
}
Console.WriteLine(new Service(new FakeClock()).Report()); // Time is 12:00Alles samenbrengen
Deze klasse gebruikt een primaire constructor voor haar afhankelijkheden en stelt een berekende eigenschap beschikbaar, zonder expliciete constructorhoofdtekst.
using System;
class Rectangle(double w, double h) {
public double Area => w * h;
public double Perimeter => 2 * (w + h);
}
var r = new Rectangle(3, 4);
Console.WriteLine(r.Area + " " + r.Perimeter); // 12 14Snelle controle
Test of je primaire constructors voor klassen begrijpt.
Samenvatting
Je hebt primaire constructors voor klassen geleerd.
class C(int x)declareert constructorparameters in de kop.- Parameters vallen binnen bereik in de hele hoofdtekst van de klasse.
- Extra constructors verwijzen met
: this(...)door. - Bij een gewone klasse zijn het niet automatisch openbare eigenschappen.
Leer C# met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 93
- Lessen
- 346
Veelgestelde vragen
Is de les “Primaire constructors voor klassen” gratis?
Ja — de volledige tekst van “Primaire constructors voor klassen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus C# Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus C# Academy bevat in totaal 4 lessen.
Wat leer ik in “Primaire constructors voor klassen”?
Declareer constructorparameters in de typekop. Je oefent met C# Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met C# Academy te beginnen?
Ervaring vooraf is niet nodig. C# Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Primaire constructors voor klassen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over C# Academy?
Ja. Elke les over C# Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Primaire constructors voor klassen
- Parameters vastleggen in leden
- Primaire constructors voor structs
- Combineren met eigenschappen en basistypen