TOC

This article has been localized into Dutch by the community.

Klassen:

Gedeeltelijke klassen

Als je al gewerkt hebt in C#, of misschien in een andere programmeertaal, weet je waarschijnlijk al dat de naam van een klasse uniek moet zijn. Er kunnen geen 2 klassen zijn met dezelfde naam, tenzij ze in een andere namespace zitten. Tijdens de verdere ontwikkeling van het .NET framework heeft Microsoft beslist om dit aan te passen en hebben ze gedeeltelijke klassen (partial classes) ingevoerd.

Als je een klasse aanmaakt met het partial keyword, dan kan jij (of iemand anders) de functionaliteit van je klasse uitbreiden met een andere klasse. Deze moet ook als partial gedeclareerd worden. Dit kan handig zijn in volgende situaties:

  • Als je een hele grote klasse hebt is het misschien handig om deze in meerdere bestanden op te slaan om het makkelijker te maken om met verschillende delen van de klasse te werken. Zo kan je bijvoorbeeld alle eigenschappen in een bestand opslaan en alle methoden in een ander bestand terwijl je nog steeds maar een klasse hebt.
  • Als je met een designer werkt (bijvoorbeeld Visual Studio) dan zal in een WinForms project alle door de designer gegenereerde code in een apart bestanden worden opgeslagen, los van het bestand waarin jouw code wordt opgeslagen.

Laat me dit even verduidelijken met een voorbeeld. In mijn project heb ik Program.cs die je kan vinden in de Console app. Daarnaast heb ik nog 2 bestanden toegevoegd: PartialClass1.cs en PartialClass2.cs. Hier zijn de bestanden en hun inhoud:

PartialClass1.cs

using System;

namespace PartialClasses
{
    public partial class PartialClass
    {
        public void HelloWorld()
        {
            Console.WriteLine("Hello, world!");
        }
    }
}

PartialClass2.cs

using System;

namespace PartialClasses
{
    public partial class PartialClass
    {
        public void HelloUniverse()
        {
            Console.WriteLine("Hello, universe!");
        }
    }
}

Merk op de beide klassen gedefinieerd worden met het partial keyword en dezelfde naam hebben. Ze definiëren ook elk een methode - HelloWorld() en HelloUniverse(). In onze Program.cs kunnen we deze klasse nu gebruiken net alsof ze maar op een plaats gedefinieerd is, net zoals elke andere klasse dus.

using System;

namespace PartialClasses
{
    class Program
    {
        static void Main(string[] args)
        {
            PartialClass pc = new PartialClass();
            pc.HelloWorld();
            pc.HelloUniverse();
        }
    }
}

Samenvatting

Met gedeeltelijke klassen kan je een klasse opsplitsen over meerdere bestanden. Omdat de definitie van de klasse zeer groot is of omdat de tools de je gebruikt hier een voordeel uithalen (zoals de Visual Studio designer voor WinForms).

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!