C# Academy · Les

Primaire constructors voor klassen

Declareer constructorparameters in de typekop.

Les 1 van 413 stappen

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,4

Geen 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.57

Velden 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); // 150

Validatie 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); // Lin

Extra 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); // 5x5

Hoofdteksten 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] started

Niet 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); // 212

Vastgelegde 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()); // 11

Eenvoudigere 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:00

Alles 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 14

Snelle 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.
Gratis beginnen

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

  1. Primaire constructors voor klassen
  2. Parameters vastleggen in leden
  3. Primaire constructors voor structs
  4. Combineren met eigenschappen en basistypen
← Terug naar C# Academy