Heim Backend-Entwicklung C#.Net-Tutorial Implizite und explizite Typkonvertierungen in C#

Implizite und explizite Typkonvertierungen in C#

Feb 10, 2017 pm 03:12 PM

Was die implizite und explizite Konvertierung betrifft, gibt es sie in jeder Sprache, und C# ist sicherlich keine Ausnahme. Eine häufig verwendete Situation besteht darin, dass beim Schreiben arithmetischer Ausdrücke der Gesamtdatentyp konsistent und die Berechnung genau sein muss. Beispielsweise gibt es eine Variable a vom Typ int, die jedoch durch Addition, Subtraktion, Multiplikation und Division erhalten wird Die Operation muss in Betracht gezogen werden, die Divisionsoperation in Float oder Double umzuwandeln und dann das Ergebnis in Int umzuwandeln. Ein weiterer Grund ist, dass Sie beim Übergeben von Parametern darauf achten müssen, welche Parameter erforderlich sind explizite Konvertierung, oder Sie sollten auch auf den Typ achten, wenn Sie einem Sammlungsproblem Werte zuweisen.
1. Implizite Typkonvertierung
Die sogenannte implizite Konvertierung ist die Standardkonvertierung des Systems. Ihr Kern besteht darin, dass Datentypen mit geringer Speicherkapazität automatisch in Datentypen mit großer Speicherkapazität konvertiert werden. Es gibt die folgenden Typen:
Vom Sbyte-Typ zum Short-, Int-, Long-, Float-, Double- oder Decimal-Typ.

Vom Bytetyp zum Short-, Ushort-, Int-, Uint-, Long-, Ulong-, Float-, Double- oder Dezimaltyp.

Vom kurzen Typ zum int-, langen, float-, double- oder dezimalen Typ.

Vom Typ ushort zum Typ int, uint, long, ulong, float, double oder decimal.

Vom int-Typ zum long-, float-, double- oder decimal-Typ.

Vom uint-Typ zum long-, ulong-, float-, double- oder decimal-Typ.

Vom langen Typ zum Float-, Double- oder Dezimaltyp.

Vom Ulong-Typ zum Float-, Double- oder Dezimaltyp.

Vom Typ char zum Typ ushort, int, uint, long, ulong, float, double oder decimal.

Vom Float-Typ zum Double-Typ.


2. Explizite Typkonvertierung

Explizite Typkonvertierung, also erzwungene Typkonvertierung. Im Gegensatz zur impliziten Konvertierung führt die Umwandlung zu Datenverlust.

Von sbyte zu byte, ushort, uint, ulong oder char.

Von Byte zu Sbyte oder Char.

Von short zu sbyte, byte, ushort, uint, ulong oder char.

Von ushort zu sbyte, byte, short oder char.

Von int zu sbyte, byte, short, ushort, uint, ulong oder char.

Von uint zu sbyte, byte, short, ushort, int oder char.

Von long zu sbyte, byte, short, ushort, int, uint, ulong oder char.

Von ulong zu sbyte, byte, short, ushort, int, uint, long oder char.

Von char zu sbyte, byte oder short.

Von float zu sbyte, byte, short, ushort, int, uint, long, ulong, char oder decimal.

Von double zu sbyte, byte, short, ushort, int, uint, long, ulong, char, float oder decimal.

Von Dezimalzahl zu Sbyte, Byte, Short, Ushort, Int, Uint, Long, Ulong, Char, Float oder Double.

Wenn die Konvertierung zu Informationsverlust oder zum Auslösen einer Ausnahme führt, wird die Konvertierung gemäß den folgenden Regeln durchgeführt:

Bei Konvertierungen von einem Ganzzahltyp in einen anderen führt der Compiler durch Die Konvertierung zur Überlauferkennung: Wenn kein Überlauf auftritt, ist die Konvertierung erfolgreich, andernfalls wird eine OverflowException ausgelöst. Diese Erkennung hängt auch davon ab, ob die aktivierte Option im Compiler festgelegt ist.

Bei Konvertierungen von Float, Double oder Decimal in Integer wird der Wert der Quellvariablen auf den nächsten ganzzahligen Wert als Ergebnis der Konvertierung gerundet. Wenn der ganzzahlige Wert den Bereich des Zieltyps überschreitet, wird eine OverflowException ausgelöst.

Bei der Konvertierung von Double in Float wird der Double-Wert auf den nächsten Float-Wert gerundet. Wenn dieser Wert zu klein ist, wird das Ergebnis positiv 0 oder negativ 0; wenn dieser Wert zu groß ist, wird es positiv
unendlich oder negativ unendlich. Wenn der ursprüngliche Double-Wert Nan ist, ist das Konvertierungsergebnis ebenfalls NaN.

Für die Konvertierung von Float oder Double in Dezimalzahl wird der Quellwert in Dezimalform umgewandelt und auf 28 Dezimalstellen gerundet (falls erforderlich). Wenn der Quellwert zu klein ist, ist das Ergebnis 0; wenn er zu groß ist, um durch eine Dezimalzahl dargestellt zu werden, oder wenn er unendlich oder NaN ist, wird eine InvalidCastException ausgelöst.

Bei der Konvertierung von Dezimal in Float oder Double wird der Dezimalwert auf den nächsten Wert gerundet. Diese Konvertierung kann zu einem Präzisionsverlust führen, löst jedoch keine Ausnahme aus.

Das Obige ist der Inhalt der impliziten und expliziten Typkonvertierung in C#. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

See all articles