04.06.2013 Aufrufe

Typen in C - AG Kastens - Universität Paderborn

Typen in C - AG Kastens - Universität Paderborn

Typen in C - AG Kastens - Universität Paderborn

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!