Convertir une chaîne en type en C#
Dans cet article, j’expliquerai comment convertir une chaîne en type
ou obtenir le type de données en C#. Pour déterminer le type de valeur, nous utiliserons la fonction .GetType
.
Obtenir le type
de la valeur String
en C#
L’exemple ci-dessous récupère le type runtime
d’une chaîne et d’autres valeurs et procède à l’obtention du type de chaque valeur.
Créez une classe nommée StringtoType
et une méthode Main()
.
class StringtoType {
public static void Main() {}
}
Ensuite, créez une variable de type Objet[]
appelée allvalues
et donnez-lui des valeurs comme "Abc"
(sous forme de chaîne) et 89
(sous forme d’octet).
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' };
Puis, à l’aide d’une boucle foreach
, vérifiez chaque entrée du tableau pour déterminer son type.
foreach (var data in allvalues) {
}
Initialiser une variable nommée t
de Type
de type à l’intérieur de la boucle foreach
. La variable t
contiendra le type de données de chaque valeur présente dans le tableau allvalues
avec l’aide de la méthode data.GetType()
.
Type t = data.GetType();
Après cela, nous appliquerons la condition if
pour vérifier si chaque valeur sera une chaîne.
if (t.Equals(typeof(string)))
Si une valeur s’avère être une chaîne, un message s’affichera comme ci-dessous.
'Happy Programming' is a String
Après avoir converti une chaîne en Type
, et d’autres types de données comme byte
, sbyte
, int
et double
etc. à l’aide des vérifications else if
suivantes :
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);
Enfin, s’il existe des types de données autres que byte
, sbyte
, int
, double
et long
dans le tableau allvalues
, il affichera simplement un message comme celui-ci:
'Z' is another type of data
Exemple de code complet :
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);
}
}
}
Production:
'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
Comparer des objets type
en C#
Un objet Type
avec un type est distinct. Deux identifiants d’objet Type
correspondent à un même objet s’ils représentent le même type.
Il permet de comparer des objets Type
en utilisant l’égalité des références. L’exemple ci-dessous compare des objets Type
qui contiennent plusieurs valeurs entières pour voir s’ils sont du même type.
Initialisez d’abord les variables de type int
, double
, et long
dans la méthode Main()
, et attribuez-leur des valeurs.
int Value1 = 2723;
double Value2 = 123.56;
int Value3 = 1747;
long Value4 = 123456789;
Initialisez une variable nommée t
de type Type
dans la variable t
, nous allons stocker le type de données de valeur 1 nommé Value1
à l’aide de la méthode .GetType
.
Type t = Value1.GetType();
Maintenant, avec l’aide de la fonction Object.ReferenceEquals(t, Value2.GetType())
, nous allons comparer les types de tous les objets avec Value1
.
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()));
Exemple de code complet :
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()));
}
}
Production:
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.
LinkedInArticle connexe - Csharp String
- C# Convert String to enum
- C# Convertir Int en String
- Utiliser des chaînes dans l'instruction Switch en C#
- Comment convertir une chaîne de caractères en booléen en C#
- Comment convertir une chaîne de caractères en un tableau d'octets en C#
- Comment convertir une chaînes de caractères pour qu'elle flotte en C#