| |
- 4 -
bergebene Methode auf, sie ruft den Aufrufer zurück. Ein weiteres Anwendungsge-
biet der Delegates in C# ist die Event-Steuerung.1
Weitere Features
Natürlich wartet C# noch mit einigen weiteren Features auf. Diese alle hier zu präsentie-
ren würde aber bei weitem den Rahmen sprengen, jedoch sollen einige kurz angespro-
chen werden.
So unterstützt C# beispielsweise das Überladen von Operatoren, d. h. es ist möglich, die
Implementierung bestimmter Operatoren zu ändern. Eine weitere Neuerung gegenüber
Java ist die Übergabe von Variablen an Methoden via call-by-reference. In Java werden
Variablen via call-by-value übergeben.2 Eine Änderung des Wertes einer Variable oder
der Referenz, worauf diese verweist, ist somit nicht so einfach möglich. Sie müssen
dafür extra in ein Objekt eingebettet werden. C# hingegen ermöglicht es, auch Variab-
len via call-by-reference zu übergeben. Dieses muß bei der Definition und dem Aufruf
der Methode explizit angegeben werden. Beispiel:
private static void callByReference(ref Object refObject){
refObject = new Object();
}
In diesem Beispiel würde bei einem Aufruf der Verweis der Variable auch außerhalb
des lokalen Gültigkeitsbereiches geändert. In Java wäre die Änderung der Referenz nur
innerhalb der Methode gültig. Außerhalb würde die Variable immer noch auf das ur-
sprüngliche Objekt verweisen.
Um eine entsprechende Methode aufzurufen, muß die Übergabe via call-by-reference
explizit angegeben werden:
callByReference(ref einObjekt);
Weiterhin existieren in C# sog. Properties. Dabei handelt es sich um Attribute, auf die
ohne einen expliziten Aufruf einer get- bzw. set-Methode zugegriffen werden kann. Bei
der Konstruktion einer Property werden die get- und set-Methode direkt im Property
selbst implementiert. Daher verkörpern Properties in besonderem Maße das Geheimnis-
prinzip: Wird auf die Property zugriffen, so geschieht dies implizit über die vorher defi-
nierten Methoden. So kann der Nutzer niemals direkt ein Property manipulieren, wo-
durch Fehler durch falsche Verwendung vermieden werden.
Als letzte Neuerung sollen hier noch die vorzeichenlosen Ganzzahltypen genannt wer-
den. Hierbei verschieben sich die Wertebereiche von der symmetrischen Anordnung
1
Siehe auch Kapitel 3.2 Desktop-Applikationen mit .NET
2
Hierbei ist zwischen einfachen und komplexen Typen zu unterscheiden. Beinhaltet die Variable
einen einfachen Typ, erfolgt die Übergabe via call-by-value. Handelt es sich bei der Variable aber
um einen komplexen Typ wie z. B. einem Objekt, erfolgt die Übergabe via call-by-reference.
|  |
|
| |
|
|