Entwickler-Ecke

C# - Die Sprache - Bedeutung der Schlüsselwörter 'typeof', 'is' und 'as'?


Dingo - Di 25.04.17 12:40
Titel: Bedeutung der Schlüsselwörter 'typeof', 'is' und 'as'?
Grüße!

Ich hätte ein paar Fragen zu ein paar Schlüsselwörtern, da ich ihre Funktion nicht ganz verstehe und wollte mal euch Fragen, ob ihr mir einmal erklären könnt was sie machen und wie sie eingesetzt werden: typeof, is, as

Vielen Dank!

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Titel geändert (war "typeof").


Ralf Jansen - Di 25.04.17 12:53

Alle 3 Lassen sich sehr einfach in der Doku nachlesen. Wenn die dir nicht hilft dann must du konkreter Fragen. Wir wollen ja keine allgemeine Programmierschulungen machen sollen doch recht konkret helfen.


Dingo - Di 25.04.17 13:12

Ich weiß, verstehs nur nicht ganz. Dann mal anders herum:

typeof
Liest sich für mich so, als wäre es das selbe wie GetType. Man bekommt also den Typ eines Objektes zurück.

Beispiel: ?

is
Hiermit wird geprüft ob ein gegebens objekt einem bestimmten Typ entspricht. Antwortmöglichkeiten wären true und false.

Beispiel bool b = obj is string;

as
Mit as kann man einen Typ in einen anderen Typen umwandeln.

Beispiel: string s = obj as string;

Wäre das so korrekt?

Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Palladin007 - Di 25.04.17 13:29

GetType() gibt dir ein Type-Objekt von dem Typen, den das Objekt hat, wo Du es aufrufst.
typeof() gibt dir ein Type-Objekt von dem Typ, den Du explizit angibst - ohne konkretes Objekt


C#-Quelltext
1:
2:
3:
var a = typeof(Program);
var b = new Program().GetType();
var c = a == b; // true


GetType() gibt dir auch immer den tatsächlichen Typen zurück, also auch, wenn es eine Ableitung ist, die Du gar nicht kennst.


is: Ja
as: Ja

as gibt dir null zurück, wenn das Objekt nicht dem Typ entspricht.
Daher kannst Du das auch nur bei Referenz-Typen nutzen, structs erlauben kein null.


Delete - Di 25.04.17 13:56

- Nachträglich durch die Entwickler-Ecke gelöscht -