Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Umfassender Leitfaden zu C# Datentypen: Wert-, Referenz- und Zeigertypen

Variablen in C# werden in die folgenden Typen kategorisiert:

Werttyp

Werttypvariablen können direkt einen Wert zugewiesen bekommen. Sie leiten sich von der Klasse System.ValueType ab.

Werttypen enthalten die Daten direkt. Beispiele sind int, char, float, die Zahlen, alphanumerische Zeichen und Gleitkommazahlen speichern. Wenn Sie einen int-Typ deklarieren, weist das System Speicher zur Speicherung des Werts zu.

Die folgende Tabelle listet die verfügbaren Werttypen in C# 2010 auf:

Typ Repräsentiert Bereich Standardwert
bool Boolescher Wert True oder False False
byte 8-Bit-Ganzzahl ohne Vorzeichen 0 bis 255 0
char 16-Bit-Unicode-Zeichen U+0000 bis U+FFFF '\0'
decimal 128-Bit präzise Dezimalwerte mit 28-29 signifikanten Stellen (-7,9 x 1028 bis 7,9 x 1028) / 100 bis 28 0,0M
double 64-Bit-Gleitkommazahl doppelter Genauigkeit (+/-)5,0 x 10-324 bis (+/-)1,7 x 10308 0,0D
float 32-Bit-Gleitkommazahl einfacher Genauigkeit -3,4 x 1038 bis +3,4 x 1038 0,0F
int 32-Bit-Ganzzahl mit Vorzeichen -2.147.483.648 bis 2.147.483.647 0
long 64-Bit-Ganzzahl mit Vorzeichen -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 0L
sbyte 8-Bit-Ganzzahl mit Vorzeichen -128 bis 127 0
short 16-Bit-Ganzzahl mit Vorzeichen -32.768 bis 32.767 0
uint 32-Bit-Ganzzahl ohne Vorzeichen 0 bis 4.294.967.295 0
ulong 64-Bit-Ganzzahl ohne Vorzeichen 0 bis 18.446.744.073.709.551.615 0
ushort 16-Bit-Ganzzahl ohne Vorzeichen 0 bis 65.535 0

Um die genaue Größe eines Typs oder einer Variablen auf einer bestimmten Plattform zu erhalten, können Sie die Methode sizeof verwenden. Der Ausdruck sizeof(type) ergibt die Speichergröße des Objekts oder Typs in Bytes. Nachfolgend ein Beispiel, um die Größe des int-Typs auf jedem Rechner zu ermitteln:

Live Demo
 using System; namespace DataTypeApplication { class Program { static void Main(string[] args) { Console.WriteLine("Size of int: {0}", sizeof(int)); Console.ReadLine(); } } } 

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis:

 Size of int: 4 

Referenztyp

Referenztypen enthalten nicht die tatsächlichen Daten, die in einer Variablen gespeichert sind, sondern sie enthalten einen Verweis auf die Variablen.

Mit anderen Worten: Sie verweisen auf eine Speicheradresse. Durch die Verwendung mehrerer Variablen können Referenztypen auf dieselbe Speicheradresse verweisen. Wenn die Daten an der Speicheradresse von einer der Variablen geändert werden, spiegelt die andere Variable diese Wertänderung automatisch wider. Beispiele für eingebaute Referenztypen sind: object, dynamic und string.

Objekttyp

Der Objekttyp ist die ultimative Basisklasse für alle Datentypen im C# Common Type System (CTS). Object ist ein Alias für die Klasse System.Object. Objekttypen können Werte aller anderen Typen zugewiesen bekommen: Werttypen, Referenztypen, vordefinierte oder benutzerdefinierte Typen. Vor der Zuweisung ist jedoch eine Typkonvertierung erforderlich.

Wenn ein Werttyp in einen Objekttyp konvertiert wird, spricht man von Boxing; umgekehrt, wenn ein Objekttyp in einen Werttyp konvertiert wird, spricht man von Unboxing.

 object obj; obj = 100; // dies ist Boxing 

Dynamischer Typ

Sie können jeden Werttyp in einer dynamischen Datentypvariablen speichern. Die Typprüfung für diese Variablentypen erfolgt zur Laufzeit.

Syntax für die Deklaration eines dynamischen Typs:

 dynamic <variable_name> = value; 

Beispielsweise:

 dynamic d = 20; 

Dynamische Typen ähneln Objekttypen, außer dass die Typprüfung für Objekttypvariablen zur Kompilierzeit erfolgt, während sie für dynamische Typvariablen zur Laufzeit stattfindet.

Stringtyp

Der Stringtyp ermöglicht die Zuweisung beliebiger Zeichenkettenwerte an eine Variable. Der Stringtyp ist ein Alias für die Klasse System.String. Er leitet sich vom Objekttyp ab. Der Wert für einen Stringtyp kann in zwei Formen mit Zeichenkettenliteralen zugewiesen werden: in Anführungszeichen und als @-quoted.

Beispielsweise:

 String str = "Tutorials Point"; 

Ein @-quoted Zeichenkettenliteral sieht wie folgt aus:

 @"Tutorials Point"; 

Benutzerdefinierte Referenztypen sind: class, interface oder delegate. Wir werden diese Typen in einem späteren Kapitel besprechen.

Zeigertyp

Zeigertypvariablen speichern die Speicheradresse eines anderen Typs. Zeiger in C# haben dieselben Fähigkeiten wie Zeiger in C oder C++.

Syntax für die Deklaration eines Zeigertyps:

 type* identifier; 

Beispielsweise:

 char* cptr; int* iptr; 

Wir werden Zeigertypen im Kapitel 'Unsafe Codes' besprechen.

C Sprache

  1. 4 Schlüsseltypen von Schlitzantrieben (Slotted Drives) für Befestiger erklärt
  2. Thermoelemente erklärt: Typen, Bereiche und Leistungsvergleich
  3. C# Variablen & Primitive Datentypen meistern: Der komplette Guide
  4. C#-Typkonvertierung meistern: Implizit, Explizit, Parse und Convert-Methoden
  5. C++-Datentypen verstehen: Grundlagen, Modifizierer und Best Practices
  6. C Datentypen erklärt: int, float, char und mehr – Ein vollständiger Leitfaden
  7. Python-Datentypen meistern: Praxisleitfaden
  8. Python-Typkonvertierung & Casting meistern: Umfassender Leitfaden
  9. Java Primitive Datentypen: Vollständiger Leitfaden mit Beispielen
  10. Java Type Casting meistern: Von Widening zu Narrowing und darüber hinaus