Code snippets kan je vertalen als codebrokjes. Microsoft schrijft per programmeertaal een aantal zaken voor die je als programmeur best kan volgen. Een voorbeeld hiervan is het schrijven van de getters en setters.
Wat zijn getters en setters ?
Een klasse bestaat uit eigenschappen en methodes. De eigenschappen van de klasse worden niet rechtstreeks aangesproken, maar via methodes. De getter is een methode die begint met get gevolgd door de naam van de eigenschap. Deze methode geeft je de waarde terug van de betreffende eigenschap. De setter is een methode beginnend met set gevolgd door de eigenschap. Via de setter schrijf je de waarde van de eigenschap weg.
Het idee van getters en setters is dat je de klasse zelf de verantwoordelijkheid geeft over de inhoud van zijn eigenschappen. Het voordeel hiervan is dat een andere klasse geen waardeloze inhoud kan dumpen in de eigenschappen van de klasse. Immers, iedere klasse beheert zijn eigenschappen zelf. In UML geven we getters en setters weer in het onderste compartiment van de klasse.

in Java
Ik heb Java geleerd voor ik aan C# b egon. De manier waarop Java met getters en setters omgaat, is voor mij dan ook meer vertrouwd dan C#. Men spreek van een Javabean als men het heeft over een Javaklasse die grotendeels bestaat uit eigenschappen en getters/setters. Een Javabean komt doorgaans overeen met een concept waar de eindgebruiker van de software mee vertrouwd is. Denk bijvoorbeeld aan de concepten "klant", "order", "factuur" en "betaling".
Hieronder zie je een voorbeeld van zo'n Javabean.

1:public class SalesTaxBean{
2: // Two Attributes
3: private double taxRate;
4: private double amount;
5:
6: public SalesTaxBean(){ // Sample zero argument constructor
7: setTaxRate("0");
8: setAmount("0");
9: }
10:
11: public double getTaxRate(){ // Tax Rate Getter
12: return taxRate;
13: }
14:
15: public void setTaxRate(String newTaxRate){ // Tax Rate Setter
16: taxRate = Double.valueOf(newTaxRate).doubleValue()/100;
17: }
18:
19: public double getAmount(){ // Getter for amount
20: return amount;
21: }
22:
23: public void setAmount(String newAmount){ // Setter for amount
24: amount = Double.valueOf(newAmount).doubleValue();
25: }
26:
27: public double getSalesTax(){ // Calculates the sales tax
28: return amount * taxRate;
29: }
30:
31: public double getTotal(){ // Calculates a total including tax
32: return amount + (amount * taxRate);
33: }
34:}
Samengevat schrijft men in Java eerst de attributen die allemaal als "private" gekenmerkt zijn.
Daarna volgen de getters en setters die allemaal public zijn en die zo toegang geven tot de waarde van de attributen.
in C#
C# kent ook getters en setters, maar gaat er op een iets andere manier mee om. Hieronder zien we de klasse Person met twee eigenschappen. Voor ieder van de eigenschappen is er een getter/setter-paar. class Person {
private string myName ="N/A";
private int myAge = 0;
// Declare a Name property of type string:
public string Name {
get { return myName; }
set { myName = value; }
}
// Declare an Age property of type int:
public int Age {
get { return myAge; }
set { myAge = value; }
}
Het verschil met Java is dat je niet schrijft getEigenschap, setEigenschap. In plaats daarvan werk je op de volgende manier.
private string eigenschap;
public string Eigenschap {
get {return eigenschap;}
set {eigenschap = value; }
}
een duwtje in de rug van Visual Studio
Visual Studio geeft je de mogelijkheid om deze code sneller te schrijven. Plaats de cursor in de editor. Klik met de rechtermuisknop om het snelmenu op te roepen.

Vervolgens kies je de taal waarvoor je een codebrokje wil aanmaken.

Daarna zie je de neerklaplijst met codebrokjes die je kan kiezen. We kiezen voor prop (van "propertuy" of eigenschap).

Hieronder zie je het resultaat als het codebrokje is aangemaakt door Visual Studio.

Het kan nog eenvoudiger. Als je in de editor "prop" intikt, dan krijg je hetzelfde resultaat zonder dat je via het snelmenu moet gaan.

kijk nog even bij
Een interessante webpagina over codebrokjes vind je terug op de webpagina aspalliance over code snippets





