C# Academy · Les

Statische klassen voor hulpfuncties

Groepeer hulpfuncties in statische klassen.

Les 2 van 413 stappen

Statische klassen voor hulpfuncties is een gratis C# Academy-les op CoddyKit. Dit is les 2 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 statische klasse

Een statische klasse wordt gedeclareerd met static class. Ze kan alleen statische leden bevatten en kan niet worden geïnstantieerd. Ze is de natuurlijke plek voor hulpfuncties.

using System;

static class StringUtils
{
    public static string Shout(string s) => s.ToUpper() + "!";
}

class Program
{
    static void Main()
    {
        Console.WriteLine(StringUtils.Shout("hello"));
    }
}

Instanties kunnen niet worden aangemaakt

Je schrijft nooit new voor een statische klasse. Alle toegang verloopt rechtstreeks via de naam van de klasse.

using System;

static class MathUtils
{
    public static int Cube(int x) => x * x * x;
}

class Program
{
    static void Main()
    {
        // No instance needed
        Console.WriteLine(MathUtils.Cube(3));
    }
}

Alleen statische leden toegestaan

De compiler dwingt af dat elk lid van een statische klasse statisch is. Instantievelden of constructors zijn niet toegestaan.

using System;

static class Temperature
{
    public static double ToFahrenheit(double c) => c * 9 / 5 + 32;
    public static double ToCelsius(double f) => (f - 32) * 5 / 9;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Temperature.ToFahrenheit(100));
        Console.WriteLine(Temperature.ToCelsius(32));
    }
}

Gerelateerde hulpmethoden groeperen

Een statische klasse groepeert functies met een gemeenschappelijk thema en geeft ze een duidelijke naamruimte, zoals Validation.IsEmail(...).

using System;

static class Validation
{
    public static bool IsPositive(int n) => n > 0;
    public static bool IsEmail(string s) => s.Contains("@") && s.Contains(".");
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Validation.IsPositive(5));
        Console.WriteLine(Validation.IsEmail("a@b.com"));
    }
}

De ingebouwde klasse Math

De .NET-klasse Math is een statische klasse. Je instantieert deze nooit; je roept gewoon Math.Sqrt, Math.Max enzovoort aan.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine(Math.Max(3, 9));
        Console.WriteLine(Math.Sqrt(144));
        Console.WriteLine(Math.Round(3.14159, 2));
    }
}

Statische klasse met statische velden

Een statische klasse kan statische velden bevatten voor gedeelde constanten of configuratie die door haar methoden wordt gebruikt.

using System;

static class Pricing
{
    public static decimal Tax = 0.08m;

    public static decimal WithTax(decimal price) => price + price * Tax;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Pricing.WithTax(100m));
    }
}

Zuivere functies

Hulpmethoden zijn het best als zuivere functies: de uitvoer hangt alleen van de invoer af, zonder verborgen toestand. Daardoor zijn ze voorspelbaar en goed te testen.

using System;

static class Geometry
{
    public static double RectArea(double w, double h) => w * h;
    public static double TriArea(double b, double h) => 0.5 * b * h;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Geometry.RectArea(4, 5));
        Console.WriteLine(Geometry.TriArea(6, 3));
    }
}

Hulpmethoden samenstellen

Statische hulpmethoden kunnen elkaar aanroepen en zo grotere bewerkingen opbouwen uit kleinere.

using System;

static class TextUtils
{
    public static string Clean(string s) => s.Trim().ToLower();
    public static string Slug(string s) => Clean(s).Replace(" ", "-");
}

class Program
{
    static void Main()
    {
        Console.WriteLine(TextUtils.Slug("  Hello World  "));
    }
}

Statische klasse versus statische leden in een gewone klasse

Als een type alleen hulpmethoden bevat, maak je de hele klasse statisch. Als het type hulpmethoden met instanties combineert, houd je het als een gewone klasse met enkele statische leden.

using System;

static class Convert2
{
    public static int FeetToInches(int feet) => feet * 12;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Convert2.FeetToInches(3) + " inches");
    }
}

Hulpmiddelen vindbaar houden

Groepeer hulpmethoden in statische klassen met duidelijke namen (DateUtils, StringUtils), zodat andere ontwikkelaars ze gemakkelijk kunnen vinden.

using System;

static class DateUtils
{
    public static bool IsWeekend(DayOfWeek d) =>
        d == DayOfWeek.Saturday || d == DayOfWeek.Sunday;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(DateUtils.IsWeekend(DayOfWeek.Sunday));
        Console.WriteLine(DateUtils.IsWeekend(DayOfWeek.Monday));
    }
}

Alles samenbrengen

Statische hulpprogrammaklassen centraliseren logica zonder toestand achter een duidelijke naam en verminderen zo duplicatie in je codebasis.

using System;

static class MoneyUtils
{
    public static string Format(decimal amount) => "$" + amount.ToString("0.00");
    public static decimal ApplyDiscount(decimal price, double pct) =>
        price * (decimal)(1 - pct / 100);
}

class Program
{
    static void Main()
    {
        decimal discounted = MoneyUtils.ApplyDiscount(80m, 25);
        Console.WriteLine(MoneyUtils.Format(discounted));
    }
}

Korte controle

Test je begrip van statische klassen.

Samenvatting

Een statische klasse (static class X) kan niet worden geïnstantieerd en mag alleen statische leden bevatten. Ze is de standaardplek voor functies en constanten zonder toestand, gegroepeerd onder een beschrijvende naam. De ingebouwde klasse Math is een bekend voorbeeld.

using System;

static class Util
{
    public static int Double(int n) => n * 2;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Util.Double(21));
    }
}
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 “Statische klassen voor hulpfuncties” gratis?

Ja — de volledige tekst van “Statische klassen voor hulpfuncties” 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 “Statische klassen voor hulpfuncties”?

Groepeer hulpfuncties in statische klassen. 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 2 van 4.

Hoe lang duurt de les “Statische klassen voor hulpfuncties”?

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. Statische methoden en velden
  2. Statische klassen voor hulpfuncties
  3. Constanten en readonly-velden
  4. Statisch versus instantieontwerp
← Terug naar C# Academy