Konvertieren von String in Typ in C#
In diesem Beitrag erkläre ich, wie man String in type
umwandelt oder den Datentyp in C# erhält. Um den Werttyp zu bestimmen, verwenden wir die Funktion .GetType
.
Typ eines String-Wertes in C# ermitteln
Das folgende Beispiel ruft den Typ Laufzeit
einer Zeichenfolge und anderer Werte ab und fährt fort, um den Typ jedes Werts abzurufen.
Erstellen Sie eine Klasse namens StringtoType
und eine Main()
-Methode.
class StringtoType {
public static void Main() {}
}
Erstellen Sie als Nächstes eine Variable vom Typ Object[]
namens allvalues
und geben Sie ihr einige Werte wie "Abc"
(als String) und 89
(als Byte).
object[] allvalues = { "Abc",
(long)193527,
"Happy Programming",
(byte)89,
'Z',
(sbyte)-11,
"Zeelandia is 8th continent",
27.9,
"I am a string line",
(int)20,
'7' };
Überprüfen Sie dann mit einer foreach
-Schleife jeden Eintrag im Array, um seinen Typ zu bestimmen.
foreach (var data in allvalues) {
}
Initialisieren Sie eine Variable mit dem Namen t
vom Typ Typ
innerhalb der foreach
-Schleife. Die Variable t
enthält den Datentyp jedes Werts, der im Array allvalues
mit Hilfe der Methode data.GetType()
vorhanden ist.
Type t = data.GetType();
Danach wenden wir die if
-Bedingung an, um zu prüfen, ob jeder Wert ein String ist.
if (t.Equals(typeof(string)))
Wenn festgestellt wird, dass es sich bei einem Wert um eine Zeichenfolge handelt, wird eine Meldung wie unten angezeigt.
'Happy Programming' is a String
Nach der Konvertierung eines Strings in Type
und andere Datentypen wie byte
, sbyte
, int
und double
usw. mit Hilfe der folgenden else if
-Prüfungen:
else if (t.Equals(typeof(sbyte))) Console.WriteLine(" '{0}' is a Signed Byte", data);
else if (t.Equals(typeof(byte))) Console.WriteLine(" '{0}' is a Byte", data);
else if (t.Equals(typeof(int))) Console.WriteLine(" '{0}' is an Integer of 32-bit", data);
else if (t.Equals(typeof(long))) Console.WriteLine(" '{0}' is an Integer of 64-bit", data);
else if (t.Equals(typeof(double))) Console.WriteLine("'{0}' is a double ", data);
Wenn schließlich andere Datentypen als byte
, sbyte
, int
, double
und long
im Array allvalues
gefunden werden, wird einfach eine Meldung wie diese angezeigt:
'Z' is another type of data
Vollständiges Codebeispiel:
using System;
using System.Diagnostics;
class StringtoType {
public static void Main() {
object[] allvalues = { "Abc",
(long)193527,
"Happy Programming",
(byte)89,
'Z',
(sbyte)-11,
"Zeelandia is 8th continent",
27.9,
"I am a string line",
(int)20,
'7' };
foreach (var data in allvalues) {
Type t = data.GetType();
if (t.Equals(typeof(string)))
Console.WriteLine(" '{0}' is a String", data);
else if (t.Equals(typeof(sbyte)))
Console.WriteLine(" '{0}' is a Signed Byte", data);
else if (t.Equals(typeof(byte)))
Console.WriteLine(" '{0}' is a Byte", data);
else if (t.Equals(typeof(int)))
Console.WriteLine(" '{0}' is an Integer of 32-bit", data);
else if (t.Equals(typeof(long)))
Console.WriteLine(" '{0}' is an Integer of 64-bit", data);
else if (t.Equals(typeof(double)))
Console.WriteLine("'{0}' is a double", data);
else
Console.WriteLine("'{0}' is another type of data", data);
}
}
}
Ausgabe:
'Abc' is a String
'193527' is an Integer of 64-bit
'Happy Programming' is a String
'89' is a Byte
'Z' is another type of data
'-11' is a Signed Byte
'Zeelandia is 8th continent' is a String
'27.9' is a double
'I am a string line' is a String
'20' is an Integer of 32-bit
'7' is another type of data
Vergleichen Sie type
-Objekte in C#
Ein Typ
-Objekt mit einem Typ ist eindeutig. Zwei Objektbezeichner vom Typ Typ
entsprechen demselben Objekt, wenn sie denselben Typ darstellen.
Es ermöglicht den Vergleich von Type
-Objekten mittels Referenzgleichheit. Das folgende Beispiel vergleicht Type
-Objekte, die mehrere Integer-Werte enthalten, um zu sehen, ob sie vom gleichen Typ sind.
Initialisieren Sie zunächst die Variablen vom Typ int
, double
und long
in der Methode Main()
und weisen Sie ihnen einige Werte zu.
int Value1 = 2723;
double Value2 = 123.56;
int Value3 = 1747;
long Value4 = 123456789;
Initialisieren Sie eine Variable mit dem Namen t
vom Typ Type
in der Variablen t
. Wir speichern den Datentyp des Werts 1 mit dem Namen Value1
mit Hilfe der Methode .GetType
.
Type t = Value1.GetType();
Jetzt werden wir mit Hilfe der Funktion Object.ReferenceEquals(t, Value2.GetType())
die Typen aller Objekte mit Value1
vergleichen.
Console.WriteLine("Data type of Value1 and Value2 are equal: {0}",
Object.ReferenceEquals(t, Value2.GetType()));
Console.WriteLine("Data type of Value1 and Value3 are equal: {0}",
Object.ReferenceEquals(t, Value3.GetType()));
Console.WriteLine("Data type of Value1 and Value4 are equal: {0}",
Object.ReferenceEquals(t, Value4.GetType()));
Vollständiges Codebeispiel:
using System;
using System.Diagnostics;
class CompareTypeObjects {
public static void Main() {
int Value1 = 2723;
double Value2 = 123.56;
int Value3 = 1747;
long Value4 = 123456789;
Type t = Value1.GetType();
Console.WriteLine("The data type of Value1 and Value2 are equal: {0}",
Object.ReferenceEquals(t, Value2.GetType()));
Console.WriteLine("The data type of Value1 and Value3 are equal: {0}",
Object.ReferenceEquals(t, Value3.GetType()));
Console.WriteLine("The data type of Value1 and Value4 are equal: {0}",
Object.ReferenceEquals(t, Value4.GetType()));
}
}
Ausgabe:
The data type of Value1 and Value2 are equal: False
The data type of Value1 and Value3 are equal: True
The data type of Value1 and Value4 are equal: False
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedInVerwandter Artikel - Csharp String
- C# Int in String konvertieren
- C# String in Enum konvertieren
- Verwendung von Strings in der Switch-Anweisung in C#
- So konvertieren Sie eine Zeichenkette in ein Byte-Array in C#
- Wie konvertiert man eine Zeichenkette in C# in boolesche Zeichenketten
- Wie schreibt man ein mehrzeiliges String-Literal in C#