Datentypen in C#: Double, Ganzzahl, Float, Char

⚡ Intelligente Zusammenfassung

Datentypen in C# definieren die Art der Werte, die eine Variable speichern kann, von ganzen Zahlen und Gleitkommazahlen bis hin zu booleschen Werten und Zeichenketten, und sie bestimmen, wie viel Speicherplatz jede Variable während der Programmausführung reserviert.

  • 🔢 Ganzzahltypen: Das Schlüsselwort Int32 (int) speichert ganze Zahlen wie 10, 20 oder 30 in einem festen Speicherbereich.
  • 🔣 Gleitkommatypen: double und float speichern Dezimalwerte, wobei decimal eine höhere Genauigkeit für Finanzberechnungen bietet.
  • ☑️ Boolescher Typ: Das Schlüsselwort Boolean speichert nur wahr oder falsch und steuert bedingte Logik.
  • 🔤 Textarten: Ein char-Wert speichert ein einzelnes Zeichen, während ein string-Wert eine Zeichenkette als Text speichert.
  • 🧩 Wert vs. Referenz: Werttypen speichern Daten direkt, während Referenztypen wie String eine Speicheradresse speichern.
  • 🤖 KI-Unterstützung: GitHub Copilot und ML.NET bringen Codevorschläge und maschinelles Lernen in die C#-Typbehandlung.

Datentypen in C#

Was sind Datentypen in C#?

Die C#-Sprache verfügt über eine Reihe grundlegender Datentypen. Diese Datentypen werden zum Erstellen von Werten verwendet, die innerhalb einer Anwendung verwendet werden. Lassen Sie uns die grundlegenden Datentypen erkunden, die in C# verfügbar sind. Für jedes Beispiel ändern wir nur die Hauptfunktion in unserer Datei Program.cs.

1) Ganzzahl

Ein Integer-Datentyp wird verwendet, um mit Zahlen zu arbeiten. In diesem Fall sind die Zahlen ganze Zahlen wie 10, 20 oder 30. In C# wird der Datentyp durch das Int32-Schlüsselwort. Nachfolgend finden Sie ein Beispiel dafür, wie dieser Datentyp verwendet werden kann. In unserem Beispiel definieren wir eine Int32-Variable namens num. Anschließend weisen wir der Variablen einen Integer-Wert zu und zeigen ihn entsprechend an.

Ganzzahlige Datentypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Int32 num=30;
   Console.Write(num);  
   
   Console.ReadKey();
  }
 }
}

Code Erläuterung:-

  1. Der Datentyp Int32 wird angegeben, um eine Integer-Variable namens num zu deklarieren. Der Variablen wird dann der Wert 30 zugewiesen.
  2. Schließlich wird die Funktion console.write verwendet, um die Nummer auf der Konsole anzuzeigen.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgeführt wird, wird die folgende Ausgabe angezeigt.

Ausgang:

Ganzzahlige Datentypen in C#

Anhand der Ausgabe können Sie deutlich erkennen, dass die Integer-Variable mit dem Namen num in der Konsole angezeigt wurde

2) Double

Der Datentyp „double“ wird für die Arbeit mit Dezimalzahlen verwendet. In diesem Fall handelt es sich um ganze Zahlen wie 10.11, 20.22 oder 30.33. In C# wird der Datentyp durch das Schlüsselwort „Double„. Unten finden Sie ein Beispiel für diesen Datentyp.

In unserem Beispiel definieren wir eine Double-Variable namens num. Wir weisen dann eine Double Geben Sie einen Wert in die Variable ein und zeigen Sie ihn dann entsprechend an.

Double Datentypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   double num=30.33;
   Console.Write(num); 
   
   Console.ReadKey();
  }
 }
}

Code Erläuterung:-

  1. Der Double-Datentyp wird angegeben, um einen Double-Typ zu deklarieren Variable namens Num. Der Variablen wird dann der Wert 30.33 zugewiesen.
  2. Schließlich wird die Funktion console.write verwendet, um die Nummer auf der Konsole anzuzeigen.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgeführt wird, wird die folgende Ausgabe angezeigt.

Ausgang:

Double Datentypen in C#

Anhand der Ausgabe können Sie deutlich erkennen, dass die Double-Variable mit dem Namen num in der Konsole angezeigt wurde

3) Boolescher Wert

Ein boolescher Datentyp wird verwendet, um mit booleschen Werten von zu arbeiten richtig und falsch. In C# wird der Datentyp durch das Schlüsselwort Boolean bezeichnet. Nachfolgend finden Sie ein Beispiel dafür, wie dieser Datentyp verwendet werden kann.

In unserem Beispiel definieren wir eine boolesche Variable namens „status“. Anschließend weisen wir der Variablen einen booleschen Wert zu und zeigen ihn dann entsprechend an.

Boolesche Datentypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
  { 
   static void Main(string[] args) 
   {
    Boolean status=true;
    Console.Write(status);
    
    Console.ReadKey();
   }
  }
}

Code Erläuterung:-

  1. Der boolesche Datentyp wird angegeben, um eine boolesche Variable namens „status“ zu deklarieren. Der Variablen wird dann der Wert wahr/falsch zugewiesen.
  2. Schließlich wird die Funktion console.write verwendet, um den booleschen Wert auf der Konsole anzuzeigen.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgeführt wird, wird die Ausgabe angezeigt.

Ausgang:

Boolesche Datentypen in C#

Anhand der Ausgabe können Sie deutlich erkennen, dass die Boolesche Variable, die true ergibt, in der Konsole angezeigt wurde

4) Zeichenfolge

Für die Arbeit mit String-Werten wird ein String-Datentyp verwendet. In C# wird der Datentyp durch das Schlüsselwort „String“ bezeichnet. Unten finden Sie ein Beispiel für diesen Datentyp.

In unserem Beispiel definieren wir eine String-Variable namens „message“. Anschließend weisen wir der Variablen einen String-Wert zu und zeigen ihn dann entsprechend an.

String-Datentypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class program
 {
  static void Main(string[] args)
  {
   String message="Hello";
   Console.Write(message);
   
   Console.ReadKey();
  }
 }
}

Code Erläuterung:-

  1. Der String-Datentyp wird angegeben, um eine String-Variable namens message zu deklarieren. Der Variablen wird dann der Wert „Hallo“ zugewiesen.
  2. Schließlich wird die Funktion console.write verwendet, um den String-Wert auf der Konsole anzuzeigen.

Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgeführt wird, wird die Ausgabe angezeigt.

Ausgang:

String-Datentypen in C#

Anhand der Ausgabe können Sie deutlich erkennen, dass die String-Variable mit dem Namen message in der Konsole angezeigt wurde

Vollständige Liste der C#-Datentypen

Die vier obigen Beispiele decken die gängigsten Datentypen ab, aber C# bietet eine vollständige Palette an integrierten Wertdatentypen. Jeder Typ reserviert eine feste Speichermenge und akzeptiert einen bestimmten Wertebereich. Daher gewährleistet die Wahl des kleinsten Typs, der Ihre Daten sicher aufnehmen kann, die Effizienz Ihres Programms.

Dateityp Größe Reichweite / DescriptIon
Byte 1 Bytes 0 bis 255
kurz 2 bytes -32,768 um 32,767
int (Int32) 4 bytes -2,147,483,648 um 2,147,483,647
lange 8 bytes Sehr große ganze Zahlen (±9.2 Trillionen)
schweben 4 bytes Dezimalzahlen mit ungefähr 6–7 Stellen Genauigkeit
doppelt 8 bytes Dezimalzahlen mit ungefähr 15–16 Stellen Genauigkeit
dezimal 16 bytes Hochpräzise Dezimalzahlen (28–29 Stellen) für Geld
verkohlen 2 bytes Ein einzelnes Unicode-Zeichen
bool 1 Bytes richtig oder falsch

Neben diesen Werttypen ist der String-Typ der am häufigsten verwendete Referenztyp und speichert eine Zeichenfolge beliebiger Länge. Die Wahl eines geeigneten Typs verhindert Überlauffehler und unnötigen Speicherverbrauch.

Werttypen vs. Referenztypen in C#

Jeder C#-Datentyp lässt sich in eine von zwei Gruppen einteilen: Werttypen und Referenztypen. Diese Unterscheidung bestimmt, wie C# die Daten speichert und wie sich eine Variable verhält, wenn man sie kopiert oder an eine Methode übergibt.

  • Werttypen: Diese speichern die eigentlichen Daten direkt, üblicherweise auf dem Stack. int, double, bool, char, enum`struct` und `struct` sind Werttypen. Die Zuweisung einer Variablen zu einer anderen kopiert den Wert, sodass die beiden Variablen unabhängig bleiben.
  • Referenztypen: Diese speichern eine Referenz (eine Speicheradresse), die auf Daten im Heap verweist. Zeichenketten, Objekte, Arrays und Klasseninstanzen sind Referenztypen. Beim Kopieren einer Referenzvariablen wird nur die Adresse kopiert, sodass beide Variablen auf dasselbe Objekt verweisen.

Eine Wertvariable kann niemals null sein, da sie immer einen Wert enthält, während eine nicht initialisierte Referenzvariable standardmäßig null ist. Das Verständnis dieses Unterschieds hilft Ihnen vorherzusagen, wie Datenänderungen durch ein Programm fließen.

Typkonvertierung in C#

In C# ist es häufig erforderlich, Werte von einem Datentyp in einen anderen zu konvertieren, beispielsweise Benutzereingaben, die immer Text sind, in Zahlen umzuwandeln. Dieser Vorgang wird als Typkonvertierung bezeichnet und erfolgt im Wesentlichen auf drei Arten.

  • Implizite Konvertierung: Der Compiler führt die Konvertierung automatisch durch, wenn kein Datenverlustrisiko besteht, beispielsweise bei der Zuweisung eines Integers zu einem Double. Es ist keine spezielle Syntax erforderlich.
  • Explizite Konvertierung (Casting): Sie setzen den Zieltyp in Klammern, zum Beispiel (int)myDoubleBeim Casten können Daten verloren gehen – beim Konvertieren eines Double in einen Integer geht der Dezimalteil verloren – daher nimmt man dieses Risiko bewusst in Kauf.
  • Hilfsmethoden: Die Convert-Klasse (Convert.ToInt32) und die Parse-Methode jedes Typs (int.Parse) wandeln Zeichenketten in Zahlen um, während ToString Werte wieder in lesbaren Text umwandelt.

Die Wahl der richtigen Konvertierung gewährleistet die Genauigkeit der Daten und verhindert Laufzeitfehler, die auftreten können, wenn die Datentypen auf beiden Seiten einer Zuweisung nicht übereinstimmen.

Häufig gestellte Fragen

float, double und decimal speichern alle Dezimalzahlen, unterscheiden sich aber in Genauigkeit und Größe. float verwendet 4 Byte mit etwa 7 Stellen, double verwendet 8 Byte mit etwa 15 Stellen und decimal verwendet 16 Byte für hochpräzise Finanzwerte.

Es gibt keinen wirklichen Unterschied. `int` ist ein C#-Alias ​​für den .NET-Typ `System.Int32`, daher werden `int` und `Int32` zu exakt demselben Ergebnis kompiliert. Die meisten Entwickler schreiben `int` aus Gründen der Kürze, während `Int32` den zugrunde liegenden Framework-Typ explizit angibt.

Strings sind Referenztypen, da sie eine Referenz auf Zeichendaten im Heap speichern. In einer Hinsicht verhalten sie sich jedoch wie Werttypen: Strings sind unveränderlich, sodass jede Änderung ein neues String-Objekt erzeugt, anstatt das alte zu bearbeiten.

Ein Nullable-Typ ermöglicht es einem Werttyp wie int oder bool, auch Nullwerte aufzunehmen, die mit einem nachfolgenden Fragezeichen geschrieben werden, z. B. int?. Er ist nützlich für optionale Daten und Datenbankfelder, bei denen ein fehlender Wert deutlich von Null oder Falsch unterschieden werden muss.

Ein char speichert genau ein Unicode-Zeichen und wird in einfache Anführungszeichen gesetzt, z. B. 'A'. Ein string speichert eine Folge von null oder mehr Zeichen und wird in doppelte Anführungszeichen gesetzt. Ein char ist ein Werttyp, ein string hingegen ein Referenztyp.

`var` leitet den Typ einer Variablen zur Kompilierzeit ab, und dieser Typ wird anschließend mit voller IntelliSense-Unterstützung festgelegt. `dynamic` verschiebt die Typprüfung auf die Laufzeit, sodass Typfehler erst während der Ausführung auftreten. Verwenden Sie `var` für mehr Sicherheit und `dynamic` für flexible Szenarien mit später Typbindung.

Ja. GitHub Copilot schlägt Typdeklarationen, Konvertierungen und Boilerplate-Code innerhalb von Visual Studio vor und Visual Studio CodeEs kann einen geeigneten numerischen Datentyp empfehlen oder Parsing-Code generieren, aber Sie sollten die Ausgabe überprüfen, da die Vorschläge Ungenauigkeiten oder Überlaufprobleme aufweisen können.

Ja. ML.NET ordnet C#-Datentypen Modellmerkmalen zu und verwendet dabei numerische Typen wie float und double für Trainingsdaten und string für Text. Stark typisierte Datenklassen beschreiben jede Spalte, sodass sich Modelle des maschinellen Lernens nahtlos in C#-Anwendungen integrieren lassen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: