Typen in C - AG Kastens - Universität Paderborn
Typen in C - AG Kastens - Universität Paderborn
Typen in C - AG Kastens - Universität Paderborn
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
In der folgenden Tabelle (Tab3.2.1) s<strong>in</strong>d e<strong>in</strong>ige Referenztypen aufgeführt.<br />
C#-Typ Beschreibung Beispiel<br />
Object Der ultimative Basistyp aller <strong>Typen</strong> object o = null;<br />
Str<strong>in</strong>g Str<strong>in</strong>g-Typ. E<strong>in</strong> Str<strong>in</strong>g ist e<strong>in</strong>e Sequenz von<br />
16-Bit Unicode Zeichen<br />
str<strong>in</strong>g s = ``hello``;<br />
E<strong>in</strong>dimensionale Array-<strong>Typen</strong> <strong>in</strong>t[] arr;<br />
<strong>in</strong>t[] arr = new <strong>in</strong>t[5];<br />
2 und mehr dimensionale Array-<strong>Typen</strong> <strong>in</strong>t[ , ] arr;<br />
<strong>in</strong>t[ , , ] arr;<br />
„jagged“ (Array von Array) Array-<strong>Typen</strong> <strong>in</strong>t [][] arr;<br />
<strong>in</strong>t [][][] arr;<br />
Interface (Schnitstellen) -<strong>Typen</strong> public <strong>in</strong>terface Runnable {<br />
public void run();<br />
}<br />
Klassen-<strong>Typen</strong> public class Student {<br />
private <strong>in</strong>t matnr;<br />
private str<strong>in</strong>g name;<br />
}<br />
Delegate-<strong>Typen</strong> public delegate void EmptyDel();<br />
Tabelle 3.2.1: E<strong>in</strong>ige Referenztypen <strong>in</strong> C#<br />
Mit Referenztypen ist es möglich, dass zwei Variable auf e<strong>in</strong> Objekt verweisen und daher ist es<br />
möglich, mit Operationen auf e<strong>in</strong>e Variable Wirkungen auf die andere Variable zu erzielen. Mit<br />
Variablen des Werttyps ist dies ohne weiteres nicht möglich, da jede Variable e<strong>in</strong>e eigene Kopie<br />
von Daten hat. Das folgende Beispiel macht dieses deutlich.<br />
class MyObject {<br />
public <strong>in</strong>t value = 100;<br />
}<br />
// Werttypen<br />
<strong>in</strong>t x = 100;<br />
<strong>in</strong>t y = x;<br />
y = y * 2;<br />
x<br />
y<br />
100<br />
100 200<br />
// Referenztypen<br />
MyObject ref1 = new MyObject();<br />
ref1.value = 100;<br />
MyObject ref2 = ref1;<br />
ref2.value = ref2.value * 2;<br />
ref1<br />
ref2<br />
value 50 100<br />
Die oben genannte Programmausgabe kommt dadurch zustande, da val1 und val2 Variablen vom<br />
Typ <strong>in</strong>t s<strong>in</strong>d also Variable des Werttyps s<strong>in</strong>d, hat jede Variable ihre eigene Kopie von Daten.<br />
Während Referenztypen ref1 und ref2 durch die Zuweisung ref2 = ref1; auf dasselbe Objekt im<br />
Speicher verweisen.<br />
Seite 8 von 17