Représente un caractère Unicode.
Assembly : mscorlib (dans mscorlib.dll)
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Structure Char _ Implements IComparable, IConvertible, IComparable(Of Char), _ IEquatable(Of Char)
[SerializableAttribute] [ComVisibleAttribute(true)] public struct Char : IComparable, IConvertible, IComparable<char>, IEquatable<char>
[SerializableAttribute] [ComVisibleAttribute(true)] public value class Char : IComparable, IConvertible, IComparable<wchar_t>, IEquatable<wchar_t>
[<Sealed>] [<SerializableAttribute>] [<ComVisibleAttribute(true)>] type Char = struct interface IComparable interface IConvertible interface IComparable<char> interface IEquatable<char> end
Le type Char expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
CompareTo(Char) | Compare cette instance à un objet Char spécifié et indique si cette instance précède, suit ou apparaît à la même position dans l'ordre de tri que l'objet Char spécifié. |
|
CompareTo(Object) | Compare cette instance à un objet spécifié et indique si cette instance précède, suit ou apparaît à la même position dans l'ordre de tri que le Object spécifié. |
|
ConvertFromUtf32 | Convertit le point de code Unicode spécifié en une chaîne encodée UTF-16. |
|
ConvertToUtf32(Char, Char) | Convertit la valeur d'une paire de substitution encodée UTF-16 en point de code Unicode. |
|
ConvertToUtf32(String, Int32) | Convertit la valeur d'une paire de substitution ou d'un caractère encodé UTF-16 à un emplacement précis d'une chaîne en un point de code Unicode. |
|
Equals(Char) | Retourne une valeur qui indique si cette instance équivaut à l'objet Char spécifié. |
|
Equals(Object) | Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Substitue ValueType.Equals(Object).) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
|
GetHashCode | Retourne le code de hachage pour cette instance. (Substitue ValueType.GetHashCode().) |
|
GetNumericValue(Char) | Convertit le caractère Unicode numérique spécifié en un nombre à virgule flottante double précision. |
|
GetNumericValue(String, Int32) | Convertit le caractère Unicode numérique à la position spécifiée dans une chaîne spécifiée en un nombre à virgule flottante double précision. |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
GetTypeCode | Retourne TypeCode du type valeur Char. |
|
GetUnicodeCategory(Char) | Classe un caractère Unicode spécifié dans un groupe identifié par une des valeurs UnicodeCategory. |
|
GetUnicodeCategory(String, Int32) | Classe le caractère figurant à la position spécifiée dans une chaîne spécifiée dans un groupe identifié par une des valeurs UnicodeCategory. |
|
IsControl(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des caractères de contrôle. |
|
IsControl(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des caractères de contrôle. |
|
IsDigit(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des chiffres décimaux. |
|
IsDigit(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des chiffres décimaux. |
|
IsHighSurrogate(Char) | Indique si l'objet Char spécifié est un caractère de substitution étendu. |
|
IsHighSurrogate(String, Int32) | Indique si l'objet Char à la position spécifiée dans une chaîne est un caractère de substitution étendu. |
|
IsLetter(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres Unicode. |
|
IsLetter(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des lettres Unicode. |
|
IsLetterOrDigit(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres ou des chiffres décimaux. |
|
IsLetterOrDigit(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des lettres ou des chiffres décimaux. |
|
IsLower(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres minuscules. |
|
IsLower(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des minuscules. |
|
IsLowSurrogate(Char) | Indique si l'objet Char spécifié est un caractère de substitution faible. |
|
IsLowSurrogate(String, Int32) | Indique si l'objet Char à la position spécifiée dans une chaîne est un caractère de substitution faible. |
|
IsNumber(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des nombres. |
|
IsNumber(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des nombres. |
|
IsPunctuation(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des signes de ponctuation. |
|
IsPunctuation(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des signes de ponctuation. |
|
IsSeparator(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des caractères de séparation. |
|
IsSeparator(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des caractères de séparation. |
|
IsSurrogate(Char) | Indique si le caractère spécifié possède un point de code de substitution. |
|
IsSurrogate(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée possède un point de code de substitution. |
|
IsSurrogatePair(Char, Char) | Indique si deux objets Char spécifiés forment une paire de substitution. |
|
IsSurrogatePair(String, Int32) | Indique si deux objets Char adjacents à une position spécifiée dans une chaîne forment une paire de substitution. |
|
IsSymbol(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des symboles. |
|
IsSymbol(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des symboles. |
|
IsUpper(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres majuscules. |
|
IsUpper(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des majuscules. |
|
IsWhiteSpace(Char) | Indique si le caractère Unicode spécifié est classé dans la catégorie des espaces blancs. |
|
IsWhiteSpace(String, Int32) | Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée est classé dans la catégorie des espaces blancs. |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
Parse | Convertit la valeur de la chaîne spécifiée en caractère Unicode équivalent. |
|
ToLower(Char) | Convertit la valeur d'un caractère Unicode en son équivalent en minuscules. |
|
ToLower(Char, CultureInfo) | Convertit la valeur d'un caractère Unicode spécifié en son équivalent en minuscules à l'aide des informations de mise en forme spécifiques à la culture. |
|
ToLowerInvariant | Convertit la valeur d'un caractère Unicode en son équivalent minuscule à l'aide des règles de casse de la culture dite indifférente. |
|
ToString() | Convertit la valeur de cette instance en sa représentation sous forme de chaîne équivalente. (Substitue ValueType.ToString().) |
|
ToString(Char) | Convertit le caractère Unicode spécifié en sa représentation sous forme de chaîne équivalente. |
|
ToString(IFormatProvider) | Convertit la valeur de cette instance en représentation sous forme de chaîne équivalente à l'aide des informations de format propres à la culture spécifiées. |
|
ToUpper(Char) | Convertit la valeur d'un caractère Unicode en son équivalent en majuscule. |
|
ToUpper(Char, CultureInfo) | Convertit la valeur d'un caractère Unicode spécifié en son équivalent en majuscule à l'aide des informations de mise en forme spécifiques à la culture. |
|
ToUpperInvariant | Convertit la valeur d'un caractère Unicode en son équivalent en majuscule à l'aide des règles de casse de la culture dite indifférente. |
|
TryParse | Convertit la valeur de la chaîne spécifiée en caractère Unicode équivalent. Un code de retour indique si la conversion a réussi ou a échoué. |
| Nom | Description | |
|---|---|---|
|
MaxValue | Représente la plus grande valeur possible de Char. Ce champ est constant. |
|
MinValue | Représente la plus petite valeur possible de Char. Ce champ est constant. |
| Nom | Description | |
|---|---|---|
|
IConvertible.ToBoolean | Infrastructure. Remarque Cette conversion n'est pas prise en charge. Une telle tentative lève InvalidCastException. |
|
IConvertible.ToByte | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToByte. |
|
IConvertible.ToChar | Infrastructure. Pour obtenir une description de ce membre, consultez IConvertible.ToChar. |
|
IConvertible.ToDateTime | Infrastructure. Remarque Cette conversion n'est pas prise en charge. Une telle tentative lève InvalidCastException. |
|
IConvertible.ToDecimal | Infrastructure. Remarque Cette conversion n'est pas prise en charge. Une telle tentative lève InvalidCastException. |
|
IConvertible.ToDouble | Infrastructure. Remarque Cette conversion n'est pas prise en charge. Une telle tentative lève InvalidCastException. |
|
IConvertible.ToInt16 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToInt16. |
|
IConvertible.ToInt32 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToInt32. |
|
IConvertible.ToInt64 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToInt64. |
|
IConvertible.ToSByte | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToSByte. |
|
IConvertible.ToSingle | Infrastructure. Remarque Cette conversion n'est pas prise en charge. Une telle tentative lève InvalidCastException. |
|
IConvertible.ToType | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToType. |
|
IConvertible.ToUInt16 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToUInt16. |
|
IConvertible.ToUInt32 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToUInt32. |
|
IConvertible.ToUInt64 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToUInt64. |
Le .NET Framework utilise la structure Char pour représenter un caractère Unicode. La norme Unicode identifie chaque caractère Unicode avec un nombre scalaire unique de 21 bits appelé point de code et définit l'encodage UTF-16 qui spécifie comment un point de code est encodé dans une séquence d'une ou plusieurs valeurs 16 bits. Chaque plage de valeurs 16 bits comprise entre les valeurs hexadécimales 0x0000 et 0xFFFF et stockée dans une structure Char. La valeur d'un objet Char est sa valeur numérique (ordinale) 16 bits.
Objets Char, caractères Unicode et chaînes
Un objet String est une collection séquentielle de structures Char qui représentent une chaîne de texte. La plupart des caractères Unicode peuvent être représentés par un simple objet Char, mais un caractère qui est encodé comme caractère de base, paire de substitution et/ou séquence de caractère d'association, est représenté par plusieurs objets Char. Pour cette raison, la structure Char d'un objet String n'est pas nécessairement équivalente à un seul caractère Unicode.
Plusieurs points de code 16 bits sont utilisés pour représenter des caractères Unicode uniques dans les cas suivants :
-
Glyphes qui peuvent être composés d'un caractère unique ou d'un caractère de base suivi par un ou plusieurs caractères d'association. Par exemple, le caractère ä est représenté par un objet Char dont le point de code est U+0061, suivi par un objet Char dont le point de code est U+0308. (Le caractère ä peut également être défini par un seul objet Char qui a un point de code d'U+00E4.) Dans l'exemple suivant, le caractère ä se compose de deux objets Char.
Visual BasicImports System.IO Module Example Public Sub Main() Dim sw As New StreamWriter("chars1.txt") Dim chars() As Char = { ChrW(&h0061), ChrW(&h0308) } Dim strng As New String(chars) sw.WriteLine(strng) sw.Close() End Sub End Module ' The example produces the following output: ' ä
C#using System; using System.IO; public class Example { public static void Main() { StreamWriter sw = new StreamWriter("chars1.txt"); char[] chars = { '\u0061', '\u0308' }; string strng = new String(chars); sw.WriteLine(strng); sw.Close(); } } // The example produces the following output: // ä
-
Caractères extérieurs au BMP (Unicode Basic Multilingual Plane). Unicode prend en charge seize plans en plus de BMP qui représente le plan 0. Un point de code Unicode est représenté en UTF-32 par une valeur de 21 bits qui inclut le plan. Par exemple, U+1D160 représente le caractère SYMBOLE MUSICAL CROCHE. Étant donné que l'encodage UTF-16 comporte uniquement 16 bits, les caractères extérieurs au BMP sont représentés par des paires de substitution dans UTF-16. L'exemple suivant montre que l'équivalent UTF-32 de U+1D160, le caractère SYMBOLE MUSICAL CROCHE, est U+D834 U+DD60. U+D834 est le substitut étendu ; les substituts étendus varient entre U+D800 et U+DBFF. U+DD60 est le substitut faible ; les substituts faibles varient entre U+DC00 et U+DFFF.
Visual BasicImports System.IO Module Example Public Sub Main() Dim sw As New StreamWriter(".\chars2.txt") Dim utf32 As Integer = &h1D160 Dim surrogate As String = Char.ConvertFromUtf32(utf32) sw.WriteLine("U+{0:X6} UTF-32 = {1} ({2}) UTF-16", utf32, surrogate, ShowCodePoints(surrogate)) sw.Close() End Sub Private Function ShowCodePoints(value As String) As String Dim retval As String = Nothing For Each ch In value retval += String.Format("U+{0:X4} ", Convert.ToUInt16(ch)) Next Return retval.Trim() End Function End Module ' The example produces the following output: ' U+01D160 UTF-32 = ð (U+D834 U+DD60) UTF-16
C#using System; using System.IO; public class Example { public static void Main() { StreamWriter sw = new StreamWriter(@".\chars2.txt"); int utf32 = 0x1D160; string surrogate = Char.ConvertFromUtf32(utf32); sw.WriteLine("U+{0:X6} UTF-32 = {1} ({2}) UTF-16", utf32, surrogate, ShowCodePoints(surrogate)); sw.Close(); } private static string ShowCodePoints(string value) { string retval = null; foreach (var ch in value) retval += String.Format("U+{0:X4} ", Convert.ToUInt16(ch)); return retval.Trim(); } } // The example produces the following output: // U+01D160 UTF-32 = ð (U+D834 U+DD60) UTF-16
Étant donné qu'un caractère seul peut être représenté par plusieurs objets Char, nous vous recommandons d'utiliser des chaînes au lieu de caractères isolés pour représenter et analyser le contenu linguistique.
Fonctionnalité
La structure Char fournit des méthodes pour comparer les objets Char, convertir la valeur de l'objet Char en cours en un objet d'un autre type et déterminer la catégorie Unicode d'un objet Char :
-
Utilisez les méthodes CompareTo et Equals pour comparer des objets Char.
-
Utilisez la méthode ConvertFromUtf32 pour convertir un point de code en une chaîne. Utilisez les méthodes ConvertToUtf32 pour convertir un objet Char ou une paire de substitution d'objets Char en un point de code.
-
Utilisez les méthodes GetUnicodeCategory pour obtenir la catégorie Unicode d'un caractère. Utilisez les méthodes IsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpper et IsWhiteSpace pour déterminer si un caractère est dans une catégorie Unicode particulière, comme un chiffre, une lettre, un signe de ponctuation, un caractère de contrôle, etc.
-
Utilisez les méthodes GetNumericValue pour convertir un objet Char qui représente un nombre en un type valeur numérique. Utilisez Parse et TryParse pour convertir un caractère d'une chaîne en un objet Char. Utilisez ToString pour convertir un objet Char en un objet String.
-
Utilisez les méthodes ToLower, ToLowerInvariant, ToUpper et ToUpperInvariant pour modifier la casse d'un objet Char.
L'exemple de code suivant illustre certaines méthodes de Char.
imports System Module CharStructure Public Sub Main() Dim chA As Char chA = "A"c Dim ch1 As Char ch1 = "1"c Dim str As String str = "test string" Console.WriteLine(chA.CompareTo("B"c)) ' Output: "-1" (meaning 'A' is 1 less than 'B') Console.WriteLine(chA.Equals("A"c)) ' Output: "True" Console.WriteLine(Char.GetNumericValue(ch1)) ' Output: "1" Console.WriteLine(Char.IsControl(Chr(9))) ' Output: "True" Console.WriteLine(Char.IsDigit(ch1)) ' Output: "True" Console.WriteLine(Char.IsLetter(","c)) ' Output: "False" Console.WriteLine(Char.IsLower("u"c)) ' Output: "True" Console.WriteLine(Char.IsNumber(ch1)) ' Output: "True" Console.WriteLine(Char.IsPunctuation("."c)) ' Output: "True" Console.WriteLine(Char.IsSeparator(str, 4)) ' Output: "True" Console.WriteLine(Char.IsSymbol("+"c)) ' Output: "True" Console.WriteLine(Char.IsWhiteSpace(str, 4)) ' Output: "True" Console.WriteLine(Char.Parse("S")) ' Output: "S" Console.WriteLine(Char.ToLower("M"c)) ' Output: "m" Console.WriteLine("x"c.ToString()) ' Output: "x" End Sub End Module
using System; public class CharStructureSample { public static void Main() { char chA = 'A'; char ch1 = '1'; string str = "test string"; Console.WriteLine(chA.CompareTo('B')); // Output: "-1" (meaning 'A' is 1 less than 'B') Console.WriteLine(chA.Equals('A')); // Output: "True" Console.WriteLine(Char.GetNumericValue(ch1)); // Output: "1" Console.WriteLine(Char.IsControl('\t')); // Output: "True" Console.WriteLine(Char.IsDigit(ch1)); // Output: "True" Console.WriteLine(Char.IsLetter(',')); // Output: "False" Console.WriteLine(Char.IsLower('u')); // Output: "True" Console.WriteLine(Char.IsNumber(ch1)); // Output: "True" Console.WriteLine(Char.IsPunctuation('.')); // Output: "True" Console.WriteLine(Char.IsSeparator(str, 4)); // Output: "True" Console.WriteLine(Char.IsSymbol('+')); // Output: "True" Console.WriteLine(Char.IsWhiteSpace(str, 4)); // Output: "True" Console.WriteLine(Char.Parse("S")); // Output: "S" Console.WriteLine(Char.ToLower('M')); // Output: "m" Console.WriteLine('x'.ToString()); // Output: "x" } }
using namespace System; int main() { char chA = 'A'; char ch1 = '1'; String^ str = "test string"; Console::WriteLine( chA.CompareTo( 'B' ) ); // Output: "-1" (meaning 'A' is 1 less than 'B') Console::WriteLine( chA.Equals( 'A' ) ); // Output: "True" Console::WriteLine( Char::GetNumericValue( ch1 ) ); // Output: "1" Console::WriteLine( Char::IsControl( '\t' ) ); // Output: "True" Console::WriteLine( Char::IsDigit( ch1 ) ); // Output: "True" Console::WriteLine( Char::IsLetter( ',' ) ); // Output: "False" Console::WriteLine( Char::IsLower( 'u' ) ); // Output: "True" Console::WriteLine( Char::IsNumber( ch1 ) ); // Output: "True" Console::WriteLine( Char::IsPunctuation( '.' ) ); // Output: "True" Console::WriteLine( Char::IsSeparator( str, 4 ) ); // Output: "True" Console::WriteLine( Char::IsSymbol( '+' ) ); // Output: "True" Console::WriteLine( Char::IsWhiteSpace( str, 4 ) ); // Output: "True" Console::WriteLine( Char::Parse( "S" ) ); // Output: "S" Console::WriteLine( Char::ToLower( 'M' ) ); // Output: "m" Console::WriteLine( 'x' ); // Output: "x" }
.NET Framework
Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Pris en charge dans : 4, 3.5 SP1Pris en charge dans :
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres de ce type sont thread-safe. Les membres qui semblent modifier l'instance d'état retournent, en réalité, une nouvelle instance initialisée avec la nouvelle valeur. Comme avec tout autre type, la lecture et l'écriture sur une variable partagée qui contient une instance de ce type doivent être protégées par un verrou pour garantir la sécurité des threads.
Référence
|
Date |
Historique |
Motif |
|---|---|---|
|
Décembre 2010 |
Informations supplémentaires fournies sur la différence entre un objet Char et un caractère Unicode. |
Améliorations apportées aux informations. |