c# : Properties

  1. Voorbereiding
  2. Wat zijn Properties
  3. Automatische properties

Voorbereiding

  • Maak een nieuwe Visual Studio solution Properties.
  • Maak in de solution Properties een nieuwe WPF Application WpfProperties
  • Voeg de bestaande class library Ivo.Hbo.Geometry toe aan je solution: rechtsklik de solution en kies Add > Existing Project... en blader naar de .csproj-file van dit project.
  • Maak een referentie vanuit WpfProperties naar Ivo.Hbo.Geometry
  • Wat zijn Properties

    Properties of eigenschappen stellen de ontwikkelaar in staat om data af te schermen van oneigenlijk of verkeerd gebruik: data encapsulation.

    Data afschermen met een Property

    Een ideale oplossing voor dit probleem vormen properties of eigenschappen: je hebt de afscherming zoals met methoden, maar naar de buitenwereld toe kan je de data manipuleren zoals een field.

    Automatische properties

    Sommige ontwikkelaars zweren bij het gebruik van public properties die private fields afschermen. Het is dan ook een goede attitude om zelfs wanneer je voorlopig geen extra controle of andere bijkomstige code bij een field nodig hebt, dit field toch private te maken en een public field te voorzien:
    private int waarde;
    public int Waarde
    {
    	get { return waarde; }
    	set { waarde = value; }
    }
    
    Daar een dergelijk stukje code heel dikwijls geschreven wordt, is het sinds C#3.0 mogelijk dit te verkorten:
    public int Waarde { get; set; }
    
    Dit codefragement maakt de property waarde, intern wordt deze verkorte schrijfwijze vertaald tot het voorbeeld erboven: het field en de get en set-implementatie van de property worden dus automatisch voorzien.
    De property kan even eenvoudig worden aangemaakt als een field, maar je beschikt over een property die je later kan uitbreiden.
    Starten met een field, en later overschakelen naar een property kan omslachtiger zijn.

    Meer tutorials:
    leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
    Valid HTML 4.01! Valid CSS! © - Cursusweb