"typeof" in C# ("typeof" in C#), Lektion, Seite 723820
https://www.purl.org/stefan_ram/pub/typeof_csharp (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C#-Kurs

Der typeof-Ausdruck in C♯ 

Syntax

Ein typeof-Ausdruck besteht aus dem Schlüsselwort¹ »typeof«, gefolgt von der lexikalischen Einheit runde Klammer auf »(«, einer Typangabe und der lexikalischen Einheit runde Klammer zu »)« (¹ C♯  6.0, 2.4.3).

Der typeof-Ausdruck
Ausdruck
.------. .-. .-----------. .-.
--->( typeof )--->( ( )--->| Typangabe |--->( ) )--->
'------' '-' '-----------' '-'

Als Typangabe ist jeder der bisher im Kurs vorgestellten Typangaben »int«, »double«, »decimal«, »string«, »global::System.Math« und »global::Microsoft.JScript.MathObject« erlaubt.

Obwohl ein typeof-Ausdruck eine gewisse Ähnlichkeit mit einem Aufruf hat, handelt es sich bei ihm nicht  um einen Aufruf. Dennoch wird er wegen dieser Ähnlichkeit zu einem Aufruf auch in diesem Kapitel über Aufrufe behandelt.

Eine Typangabe gilt in C♯  als auch Ausdruck¹, obwohl wir sie in diesem Kurs oft als eine bloße „Angabe“ ansehen (¹ “expression ” laut C♯  6.0, 7.1).

Semantik

Der Wert eines Ausdrucks dieses Typs ist der Systemtyp des angegeben Typs. Wir können diesen dann mit »WriteLine« ausgeben und sehen eine vollständig qualifiziert Schreibweise für den angegebenen Typ.

In C♯  kann ein und derselbe Typ verschiedene Angabeformen haben. Beispielsweise geben »int« und »global::System.Int32« den gleichen  Typ an. Es gibt jedoch für jeden Typ genau eine eindeutige  Systemtypschreibweise. Daher könnte die Ausgabe des Systemtyps dazu dienen, zu erkennen, ob zwei unterschiedliche  Typangaben für denselben  Typ stehen.

Beispiele

Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( typeof( int )); }}
Protokoll
System.Int32
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( typeof( global::System.Int32 )); }}
Protokoll
System.Int32
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( typeof( double )); }}
Protokoll
System.Double
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( typeof( decimal )); }}
Protokoll
System.Decimal
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( typeof( string )); }}
Protokoll
System.String
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( typeof( global::System.Math )); }}
Protokoll
System.Math
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( typeof( global::Microsoft.JScript.MathObject )); }}
Protokoll
Microsoft.JScript.MathObject

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723820 stefan_ram:723820 "typeof" in C# Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723820, slrprddef723820, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/typeof_csharp