Char Structure

Définition

Représente un caractère sous forme d'une unité de code UTF-16.Represents a character as a UTF-16 code unit.

public value class Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
public value class Char : IComparable, IConvertible
public value class Char : IComparable, IComparable<char>, IEquatable<char>
public struct Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
[System.Serializable]
public struct Char : IComparable, IConvertible
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
public struct Char : IComparable, IComparable<char>, IEquatable<char>
type char = struct
    interface IConvertible
type char = struct
Public Structure Char
Implements IComparable, IComparable(Of Char), IConvertible, IEquatable(Of Char)
Public Structure Char
Implements IComparable, IConvertible
Public Structure Char
Implements IComparable, IComparable(Of Char), IEquatable(Of Char)
Héritage
Attributs
Implémente

Exemples

L’exemple de code suivant illustre quelques-unes des méthodes dans Char.The following code example demonstrates some of the methods in Char.

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"
}

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"
    }
}
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

Remarques

.NET utilise la structure Char pour représenter des points de code Unicode à l’aide de l’encodage UTF-16..NET uses the Char structure to represent Unicode code points by using UTF-16 encoding. La valeur d’un objet Char est sa valeur numérique (ordinale) 16 bits.The value of a Char object is its 16-bit numeric (ordinal) value.

Si vous n’êtes pas familiarisé avec Unicode, les valeurs scalaires, les points de code, les paires de substitution, UTF-16 et le type de Rune, consultez Introduction à l’encodage de caractères dans .net.If you aren't familiar with Unicode, scalar values, code points, surrogate pairs, UTF-16, and the Rune type, see Introduction to character encoding in .NET.

Les sections suivantes examinent la relation entre un objet Char et un caractère et présentent certaines tâches courantes effectuées avec des instances Char.The following sections examine the relationship between a Char object and a character and discuss some common tasks performed with Char instances. Nous vous recommandons de prendre en compte le type de Rune, introduit dans .NET Core 3,0, comme alternative à Char pour effectuer certaines de ces tâches.We recommend that you consider the Rune type, introduced in .NET Core 3.0, as an alternative to Char for performing some of these tasks.

Objets Char, caractères Unicode et chaînesChar objects, Unicode characters, and strings

Un objet String est une collection séquentielle de structures Char qui représente une chaîne de texte.A String object is a sequential collection of Char structures that represents a string of text. La plupart des caractères Unicode peuvent être représentés par un objet Char unique, mais un caractère encodé sous la forme d’un caractère de base, d’une paire de substitution et/ou d’une séquence de caractères d’association est représenté par plusieurs objets Char.Most Unicode characters can be represented by a single Char object, but a character that is encoded as a base character, surrogate pair, and/or combining character sequence is represented by multiple Char objects. Pour cette raison, une structure Char dans un objet String n’est pas nécessairement équivalente à un seul caractère Unicode.For this reason, a Char structure in a String object is not necessarily equivalent to a single Unicode character.

Plusieurs unités de code 16 bits sont utilisées pour représenter des caractères Unicode uniques dans les cas suivants :Multiple 16-bit code units are used to represent single Unicode characters in the following cases:

  • Glyphes, qui peuvent se composer d’un caractère unique ou d’un caractère de base suivi d’un ou de plusieurs caractères d’association.Glyphs, which may consist of a single character or of a base character followed by one or more combining characters. Par exemple, le caractère ä est représenté par un objet Char dont l’unité de code est U + 0061 suivie d’un objet Char dont l’unité de code est U + 0308.For example, the character ä is represented by a Char object whose code unit is U+0061 followed by a Char object whose code unit is U+0308. (Le caractère ä peut également être défini par un objet Char unique qui a une unité de code U + 00E4.) L’exemple suivant montre que le caractère ä se compose de deux objets Char.(The character ä can also be defined by a single Char object that has a code unit of U+00E4.) The following example illustrates that the character ä consists of two Char objects.

    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:
    //       ä
    
    Imports 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:
    '       ä
    
  • Caractères en dehors du plan multilingue de base Unicode (BMP).Characters outside the Unicode Basic Multilingual Plane (BMP). Unicode prend en charge seize plans en plus du BMP, qui représente le plan 0.Unicode supports sixteen planes in addition to the BMP, which represents plane 0. Un point de code Unicode est représenté en UTF-32 par une valeur 21 bits qui comprend le plan.A Unicode code point is represented in UTF-32 by a 21-bit value that includes the plane. Par exemple, U + 1D160 représente le caractère de NOTE de symbole MUSICAL croche.For example, U+1D160 represents the MUSICAL SYMBOL EIGHTH NOTE character. Étant donné que l’encodage UTF-16 n’a que 16 bits, les caractères en dehors du BMP sont représentés par des paires de substitution en UTF-16.Because UTF-16 encoding has only 16 bits, characters outside the BMP are represented by surrogate pairs in UTF-16. L’exemple suivant montre que l’équivalent UTF-32 de U + 1D160, le caractère de NOTE MUSICAL SYMBOL croche, est U + D834 U + DD60.The following example illustrates that the UTF-32 equivalent of U+1D160, the MUSICAL SYMBOL EIGHTH NOTE character, is U+D834 U+DD60. U + D834 est le substitut étendu ; les substituts étendus sont compris entre U + D800 et U + DBFF.U+D834 is the high surrogate; high surrogates range from U+D800 through U+DBFF. U + DD60 est le substitut faible ; les substituts faibles vont de U + DC00 et à U + DFFF.U+DD60 is the low surrogate; low surrogates range from U+DC00 through U+DFFF.

    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
    
    Imports 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
    

Caractères et catégories de caractèresCharacters and character categories

Chaque caractère Unicode ou paire de substitution valide appartient à une catégorie Unicode.Each Unicode character or valid surrogate pair belongs to a Unicode category. Dans le .NET Framework, les catégories Unicode sont représentées par les membres de l’énumération UnicodeCategory et incluent des valeurs telles que UnicodeCategory.CurrencySymbol, UnicodeCategory.LowercaseLetteret UnicodeCategory.SpaceSeparator, par exemple.In the .NET Framework, Unicode categories are represented by members of the UnicodeCategory enumeration and include values such as UnicodeCategory.CurrencySymbol, UnicodeCategory.LowercaseLetter, and UnicodeCategory.SpaceSeparator, for example.

Pour déterminer la catégorie Unicode d’un caractère, appelez la méthode GetUnicodeCategory.To determine the Unicode category of a character, call the GetUnicodeCategory method. Par exemple, l’exemple suivant appelle la GetUnicodeCategory pour afficher la catégorie Unicode de chaque caractère dans une chaîne.For example, the following example calls the GetUnicodeCategory to display the Unicode category of each character in a string. L’exemple fonctionne correctement uniquement s’il n’existe aucune paire de substitution dans l’instance String.The example works correctly only if there are no surrogate pairs in the String instance.

using System;
using System.Globalization;

class Example
{
   public static void Main()
   {
      // Define a string with a variety of character categories.
      String s = "The red car drove down the long, narrow, secluded road.";
      // Determine the category of each character.
      foreach (var ch in s)
         Console.WriteLine("'{0}': {1}", ch, Char.GetUnicodeCategory(ch));
   }
}
// The example displays the following output:
//      'T': UppercaseLetter
//      'h': LowercaseLetter
//      'e': LowercaseLetter
//      ' ': SpaceSeparator
//      'r': LowercaseLetter
//      'e': LowercaseLetter
//      'd': LowercaseLetter
//      ' ': SpaceSeparator
//      'c': LowercaseLetter
//      'a': LowercaseLetter
//      'r': LowercaseLetter
//      ' ': SpaceSeparator
//      'd': LowercaseLetter
//      'r': LowercaseLetter
//      'o': LowercaseLetter
//      'v': LowercaseLetter
//      'e': LowercaseLetter
//      ' ': SpaceSeparator
//      'd': LowercaseLetter
//      'o': LowercaseLetter
//      'w': LowercaseLetter
//      'n': LowercaseLetter
//      ' ': SpaceSeparator
//      't': LowercaseLetter
//      'h': LowercaseLetter
//      'e': LowercaseLetter
//      ' ': SpaceSeparator
//      'l': LowercaseLetter
//      'o': LowercaseLetter
//      'n': LowercaseLetter
//      'g': LowercaseLetter
//      ',': OtherPunctuation
//      ' ': SpaceSeparator
//      'n': LowercaseLetter
//      'a': LowercaseLetter
//      'r': LowercaseLetter
//      'r': LowercaseLetter
//      'o': LowercaseLetter
//      'w': LowercaseLetter
//      ',': OtherPunctuation
//      ' ': SpaceSeparator
//      's': LowercaseLetter
//      'e': LowercaseLetter
//      'c': LowercaseLetter
//      'l': LowercaseLetter
//      'u': LowercaseLetter
//      'd': LowercaseLetter
//      'e': LowercaseLetter
//      'd': LowercaseLetter
//      ' ': SpaceSeparator
//      'r': LowercaseLetter
//      'o': LowercaseLetter
//      'a': LowercaseLetter
//      'd': LowercaseLetter
//      '.': OtherPunctuation
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Define a string with a variety of character categories.
      Dim s As String = "The car drove down the narrow, secluded road."
      ' Determine the category of each character.
      For Each ch In s
         Console.WriteLine("'{0}': {1}", ch, Char.GetUnicodeCategory(ch)) 
      Next
   End Sub
End Module
' The example displays the following output:
'       'T': UppercaseLetter
'       'h': LowercaseLetter
'       'e': LowercaseLetter
'       ' ': SpaceSeparator
'       'r': LowercaseLetter
'       'e': LowercaseLetter
'       'd': LowercaseLetter
'       ' ': SpaceSeparator
'       'c': LowercaseLetter
'       'a': LowercaseLetter
'       'r': LowercaseLetter
'       ' ': SpaceSeparator
'       'd': LowercaseLetter
'       'r': LowercaseLetter
'       'o': LowercaseLetter
'       'v': LowercaseLetter
'       'e': LowercaseLetter
'       ' ': SpaceSeparator
'       'd': LowercaseLetter
'       'o': LowercaseLetter
'       'w': LowercaseLetter
'       'n': LowercaseLetter
'       ' ': SpaceSeparator
'       't': LowercaseLetter
'       'h': LowercaseLetter
'       'e': LowercaseLetter
'       ' ': SpaceSeparator
'       'l': LowercaseLetter
'       'o': LowercaseLetter
'       'n': LowercaseLetter
'       'g': LowercaseLetter
'       ',': OtherPunctuation
'       ' ': SpaceSeparator
'       'n': LowercaseLetter
'       'a': LowercaseLetter
'       'r': LowercaseLetter
'       'r': LowercaseLetter
'       'o': LowercaseLetter
'       'w': LowercaseLetter
'       ',': OtherPunctuation
'       ' ': SpaceSeparator
'       's': LowercaseLetter
'       'e': LowercaseLetter
'       'c': LowercaseLetter
'       'l': LowercaseLetter
'       'u': LowercaseLetter
'       'd': LowercaseLetter
'       'e': LowercaseLetter
'       'd': LowercaseLetter
'       ' ': SpaceSeparator
'       'r': LowercaseLetter
'       'o': LowercaseLetter
'       'a': LowercaseLetter
'       'd': LowercaseLetter
'       '.': OtherPunctuation

En interne, pour les caractères en dehors de la plage ASCII (U + 0000 à U + 00FF), la méthode GetUnicodeCategory dépend des catégories Unicode signalées par la classe CharUnicodeInfo.Internally, for characters outside the ASCII range (U+0000 through U+00FF), the GetUnicodeCategory method depends on Unicode categories reported by the CharUnicodeInfo class. À partir de la .NET Framework 4.6.2.NET Framework 4.6.2, les caractères Unicode sont classés en fonction de la norme Unicode, version 8.0.0.Starting with the .NET Framework 4.6.2.NET Framework 4.6.2, Unicode characters are classified based on The Unicode Standard, Version 8.0.0. Dans les versions du .NET Framework du .NET Framework 4.NET Framework 4 au .NET Framework 4.6.1.NET Framework 4.6.1, elles sont classées en fonction de la norme Unicode, version 6.3.0.In versions of the .NET Framework from the .NET Framework 4.NET Framework 4 to the .NET Framework 4.6.1.NET Framework 4.6.1, they are classified based on The Unicode Standard, Version 6.3.0.

Caractères et éléments de texteCharacters and text elements

Étant donné qu’un caractère unique peut être représenté par plusieurs objets Char, il n’est pas toujours significatif de travailler avec des objets Char individuels.Because a single character can be represented by multiple Char objects, it is not always meaningful to work with individual Char objects. Par exemple, l’exemple suivant convertit les points de code Unicode qui représentent les chiffres de la mer de 0 à 9 en unités de code encodées en UTF-16.For instance, the following example converts the Unicode code points that represent the Aegean numbers zero through 9 to UTF-16 encoded code units. Dans la mesure où elle équivaut par erreur Char objets avec des caractères, elle signale de manière inexacte que la chaîne résultante contient 20 caractères.Because it erroneously equates Char objects with characters, it inaccurately reports that the resulting string has 20 characters.

using System;

public class Example
{
   public static void Main()
   {
      string result = String.Empty;
      for (int ctr = 0x10107; ctr <= 0x10110; ctr++)  // Range of Aegean numbers.
         result += Char.ConvertFromUtf32(ctr);

      Console.WriteLine("The string contains {0} characters.", result.Length);
   }
}
// The example displays the following output:
//     The string contains 20 characters.
Module Example
   Public Sub Main()
      Dim result As String = String.Empty
      For ctr As Integer = &h10107 To &h10110     ' Range of Aegean numbers.
         result += Char.ConvertFromUtf32(ctr)
      Next         
      Console.WriteLine("The string contains {0} characters.", result.Length) 
   End Sub
End Module
' The example displays the following output:
'     The string contains 20 characters.

Vous pouvez effectuer les opérations suivantes pour éviter l’hypothèse qu’un objet Char représente un caractère unique.You can do the following to avoid the assumption that a Char object represents a single character.

  • Vous pouvez utiliser un objet String dans son intégralité au lieu d’utiliser ses propres caractères pour représenter et analyser le contenu linguistique.You can work with a String object in its entirety instead of working with its individual characters to represent and analyze linguistic content.

  • Vous pouvez utiliser String.EnumerateRunes comme indiqué dans l’exemple suivant :You can use String.EnumerateRunes as shown in the following example:

    int CountLetters(string s)
    {
        int letterCount = 0;
    
        foreach (Rune rune in s.EnumerateRunes())
        {
            if (Rune.IsLetter(rune))
            { letterCount++; }
        }
    
        return letterCount;
    }
    
  • Vous pouvez utiliser la classe StringInfo pour travailler avec des éléments de texte au lieu d’objets Char individuels.You can use the StringInfo class to work with text elements instead of individual Char objects. L’exemple suivant utilise l’objet StringInfo pour compter le nombre d’éléments de texte dans une chaîne qui se compose du chiffre de 0 à 9.The following example uses the StringInfo object to count the number of text elements in a string that consists of the Aegean numbers zero through nine. Étant donné qu’il considère une paire de substitution comme un caractère unique, il signale correctement que la chaîne contient dix caractères.Because it considers a surrogate pair a single character, it correctly reports that the string contains ten characters.

    using System;
    using System.Globalization;
    
    public class Example
    {
       public static void Main()
       {
          string result = String.Empty;
          for (int ctr = 0x10107; ctr <= 0x10110; ctr++)  // Range of Aegean numbers.
             result += Char.ConvertFromUtf32(ctr);
    
          StringInfo si = new StringInfo(result);
          Console.WriteLine("The string contains {0} characters.",
                            si.LengthInTextElements);
       }
    }
    // The example displays the following output:
    //       The string contains 10 characters.
    
    Imports System.Globalization
    
    Module Example
       Public Sub Main()
          Dim result As String = String.Empty
          For ctr As Integer = &h10107 To &h10110     ' Range of Aegean numbers.
             result += Char.ConvertFromUtf32(ctr)
          Next         
          Dim si As New StringInfo(result)
          Console.WriteLine("The string contains {0} characters.", si.LengthInTextElements) 
       End Sub
    End Module
    ' The example displays the following output:
    '       The string contains 10 characters.
    
  • Si une chaîne contient un caractère de base contenant un ou plusieurs caractères d’association, vous pouvez appeler la méthode String.Normalize pour convertir la sous-chaîne en une seule unité de code encodée en UTF-16.If a string contains a base character that has one or more combining characters, you can call the String.Normalize method to convert the substring to a single UTF-16 encoded code unit. L’exemple suivant appelle la méthode String.Normalize pour convertir le caractère de base U + 0061 (lettre minuscule latine A) et le caractère d’association U + 0308 (combinaison de tréma) en U + 00E4 (lettre minuscule latine A avec tréma).The following example calls the String.Normalize method to convert the base character U+0061 (LATIN SMALL LETTER A) and combining character U+0308 (COMBINING DIAERESIS) to U+00E4 (LATIN SMALL LETTER A WITH DIAERESIS).

    using System;
    
    public class Example
    {
       public static void Main()
       {
          string combining = "\u0061\u0308";
          ShowString(combining);
    
          string normalized = combining.Normalize();
          ShowString(normalized);
       }
    
       private static void ShowString(string s)
       {
          Console.Write("Length of string: {0} (", s.Length);
          for (int ctr = 0; ctr < s.Length; ctr++) {
             Console.Write("U+{0:X4}", Convert.ToUInt16(s[ctr]));
             if (ctr != s.Length - 1) Console.Write(" ");
          }
          Console.WriteLine(")\n");
       }
    }
    // The example displays the following output:
    //       Length of string: 2 (U+0061 U+0308)
    //
    //       Length of string: 1 (U+00E4)
    
    Module Example
       Public Sub Main()
          Dim combining As String = ChrW(&h0061) + ChrW(&h0308)
          ShowString(combining)
          
          Dim normalized As String = combining.Normalize()
          ShowString(normalized)
       End Sub
       
       Private Sub ShowString(s As String)
          Console.Write("Length of string: {0} (", s.Length)
          For ctr As Integer = 0 To s.Length - 1
             Console.Write("U+{0:X4}", Convert.ToUInt16(s(ctr)))
             If ctr <> s.Length - 1 Then Console.Write(" ")
          Next 
          Console.WriteLine(")")
          Console.WriteLine()
       End Sub
    End Module
    ' The example displays the following output:
    '       Length of string: 2 (U+0061 U+0308)
    '       
    '       Length of string: 1 (U+00E4)
    

Opérations courantesCommon operations

La structure Char fournit des méthodes pour comparer des objets Char, convertir la valeur de l’objet Char actuel en un objet d’un autre type et déterminer la catégorie Unicode d’un objet Char :The Char structure provides methods to compare Char objects, convert the value of the current Char object to an object of another type, and determine the Unicode category of a Char object:

Action à réaliserTo do this Utilisez ces méthodes System.CharUse these System.Char methods
Comparer des objets CharCompare Char objects CompareTo et EqualsCompareTo and Equals
Convertir un point de code en une chaîneConvert a code point to a string ConvertFromUtf32

Voir aussi le type de Rune.See also the Rune type.
Convertir un objet Char ou une paire de substitution d’objets Char en un point de codeConvert a Char object or a surrogate pair of Char objects to a code point Pour un seul caractère : Convert.ToInt32(Char)For a single character: Convert.ToInt32(Char)

Pour une paire de substitution ou un caractère dans une chaîne : Char.ConvertToUtf32For a surrogate pair or a character in a string: Char.ConvertToUtf32

Voir aussi le type de Rune.See also the Rune type.
Obtenir la catégorie Unicode d’un caractèreGet the Unicode category of a character GetUnicodeCategory

Voir aussi Rune.GetUnicodeCategory.See also Rune.GetUnicodeCategory.
Déterminer si un caractère se trouve dans une catégorie Unicode particulière, telle qu’un chiffre, une lettre, une ponctuation, un caractère de contrôle, etc.Determine whether a character is in a particular Unicode category such as digit, letter, punctuation, control character, and so on IsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpperet IsWhiteSpaceIsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpper, and IsWhiteSpace

Consultez également les méthodes correspondantes sur le type de Rune.See also corresponding methods on the Rune type.
Convertir un objet Char qui représente un nombre en un type valeur numériqueConvert a Char object that represents a number to a numeric value type GetNumericValue

Voir aussi Rune.GetNumericValue.See also Rune.GetNumericValue.
Convertir un caractère d’une chaîne en objet CharConvert a character in a string into a Char object Parse et TryParseParse and TryParse
Convertir un objet Char en objet StringConvert a Char object to a String object ToString
Modifier la casse d’un objet CharChange the case of a Char object ToLower, ToLowerInvariant, ToUpper et ToUpperInvariantToLower, ToLowerInvariant, ToUpper, and ToUpperInvariant

Consultez également les méthodes correspondantes sur le type de Rune.See also corresponding methods on the Rune type.

Valeurs char et InteropChar values and interop

Lorsqu’un type de Char managé, représenté sous la forme d’une unité de code encodée en UTF-16 Unicode, est passé au code non managé, le marshaleur d’interopérabilité convertit par défaut le jeu de caractères en ANSI.When a managed Char type, which is represented as a Unicode UTF-16 encoded code unit, is passed to unmanaged code, the interop marshaler converts the character set to ANSI by default. Vous pouvez appliquer l’attribut DllImportAttribute aux déclarations d’appel de code non managé et l’attribut StructLayoutAttribute à une déclaration COM Interop pour contrôler le jeu de caractères utilisé par un type de Char marshalé.You can apply the DllImportAttribute attribute to platform invoke declarations and the StructLayoutAttribute attribute to a COM interop declaration to control which character set a marshaled Char type uses.

Champs

MaxValue

Représente la plus grande valeur possible d'un Char.Represents the largest possible value of a Char. Ce champ est constant.This field is constant.

MinValue

Représente la plus petite valeur possible de Char.Represents the smallest possible value of a Char. Ce champ est constant.This field is constant.

Méthodes

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é.Compares this instance to a specified Char object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified Char object.

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é.Compares this instance to a specified object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified Object.

ConvertFromUtf32(Int32)

Convertit le point de code Unicode spécifié en une chaîne encodée UTF-16.Converts the specified Unicode code point into a UTF-16 encoded string.

ConvertToUtf32(Char, Char)

Convertit la valeur d'une paire de substitution encodée UTF-16 en point de code Unicode.Converts the value of a UTF-16 encoded surrogate pair into a Unicode code point.

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.Converts the value of a UTF-16 encoded character or surrogate pair at a specified position in a string into a Unicode code point.

Equals(Char)

Retourne une valeur qui indique si cette instance est égale à l'objet Char spécifié.Returns a value that indicates whether this instance is equal to the specified Char object.

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.Returns a value that indicates whether this instance is equal to a specified object.

GetHashCode()

Retourne le code de hachage de cette instance.Returns the hash code for this instance.

GetNumericValue(Char)

Convertit le caractère Unicode numérique spécifié en un nombre à virgule flottante double précision.Converts the specified numeric Unicode character to a double-precision floating point number.

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.Converts the numeric Unicode character at the specified position in a specified string to a double-precision floating point number.

GetTypeCode()

Retourne le TypeCode du type valeur Char.Returns the TypeCode for value type Char.

GetUnicodeCategory(Char)

Classe un caractère Unicode spécifié dans un groupe identifié par l'une des valeurs UnicodeCategory.Categorizes a specified Unicode character into a group identified by one of the UnicodeCategory values.

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 l'une des valeurs UnicodeCategory.Categorizes the character at the specified position in a specified string into a group identified by one of the UnicodeCategory values.

IsControl(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des caractères de contrôle.Indicates whether the specified Unicode character is categorized as a control character.

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.Indicates whether the character at the specified position in a specified string is categorized as a control character.

IsDigit(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des chiffres décimaux.Indicates whether the specified Unicode character is categorized as a decimal digit.

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.Indicates whether the character at the specified position in a specified string is categorized as a decimal digit.

IsHighSurrogate(Char)

Indique si l'objet Char spécifié est un caractère de substitution étendu.Indicates whether the specified Char object is a high surrogate.

IsHighSurrogate(String, Int32)

Indique si l'objet Char à la position spécifiée dans une chaîne est un caractère de substitution étendu.Indicates whether the Char object at the specified position in a string is a high surrogate.

IsLetter(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres Unicode.Indicates whether the specified Unicode character is categorized as a Unicode letter.

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.Indicates whether the character at the specified position in a specified string is categorized as a Unicode letter.

IsLetterOrDigit(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres ou des chiffres décimaux.Indicates whether the specified Unicode character is categorized as a letter or a decimal digit.

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.Indicates whether the character at the specified position in a specified string is categorized as a letter or a decimal digit.

IsLower(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres minuscules.Indicates whether the specified Unicode character is categorized as a lowercase letter.

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.Indicates whether the character at the specified position in a specified string is categorized as a lowercase letter.

IsLowSurrogate(Char)

Indique si l'objet Char spécifié est un caractère de substitution faible.Indicates whether the specified Char object is a low surrogate.

IsLowSurrogate(String, Int32)

Indique si l'objet Char à la position spécifiée dans une chaîne est un caractère de substitution faible.Indicates whether the Char object at the specified position in a string is a low surrogate.

IsNumber(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des nombres.Indicates whether the specified Unicode character is categorized as a number.

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.Indicates whether the character at the specified position in a specified string is categorized as a number.

IsPunctuation(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des signes de ponctuation.Indicates whether the specified Unicode character is categorized as a punctuation mark.

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.Indicates whether the character at the specified position in a specified string is categorized as a punctuation mark.

IsSeparator(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des caractères de séparation.Indicates whether the specified Unicode character is categorized as a separator character.

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.Indicates whether the character at the specified position in a specified string is categorized as a separator character.

IsSurrogate(Char)

Indique si le caractère spécifié possède une unité de code de substitution.Indicates whether the specified character has a surrogate code unit.

IsSurrogate(String, Int32)

Indique si le caractère figurant à la position spécifiée dans une chaîne spécifiée possède une unité de code de substitution.Indicates whether the character at the specified position in a specified string has a surrogate code unit.

IsSurrogatePair(Char, Char)

Indique si les deux objets Char spécifiés forment une paire de substitution.Indicates whether the two specified Char objects form a surrogate pair.

IsSurrogatePair(String, Int32)

Indique si deux objets Char adjacents à une position spécifiée dans une chaîne forment une paire de substitution.Indicates whether two adjacent Char objects at a specified position in a string form a surrogate pair.

IsSymbol(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des symboles.Indicates whether the specified Unicode character is categorized as a symbol character.

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.Indicates whether the character at the specified position in a specified string is categorized as a symbol character.

IsUpper(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des lettres majuscules.Indicates whether the specified Unicode character is categorized as an uppercase letter.

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.Indicates whether the character at the specified position in a specified string is categorized as an uppercase letter.

IsWhiteSpace(Char)

Indique si le caractère Unicode spécifié est classé dans la catégorie des espaces blancs.Indicates whether the specified Unicode character is categorized as white space.

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.Indicates whether the character at the specified position in a specified string is categorized as white space.

Parse(String)

Convertit la valeur de la chaîne spécifiée en caractère Unicode équivalent.Converts the value of the specified string to its equivalent Unicode character.

ToLower(Char)

Convertit la valeur d'un caractère Unicode en son équivalent en minuscules.Converts the value of a Unicode character to its lowercase equivalent.

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.Converts the value of a specified Unicode character to its lowercase equivalent using specified culture-specific formatting information.

ToLowerInvariant(Char)

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.Converts the value of a Unicode character to its lowercase equivalent using the casing rules of the invariant culture.

ToString()

Convertit la valeur de cette instance en sa représentation sous forme de chaîne équivalente.Converts the value of this instance to its equivalent string representation.

ToString(Char)

Convertit le caractère Unicode spécifié en sa représentation sous forme de chaîne équivalente.Converts the specified Unicode character to its equivalent string representation.

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.Converts the value of this instance to its equivalent string representation using the specified culture-specific format information.

ToUpper(Char)

Convertit la valeur d'un caractère Unicode en son équivalent en majuscule.Converts the value of a Unicode character to its uppercase equivalent.

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.Converts the value of a specified Unicode character to its uppercase equivalent using specified culture-specific formatting information.

ToUpperInvariant(Char)

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.Converts the value of a Unicode character to its uppercase equivalent using the casing rules of the invariant culture.

TryParse(String, Char)

Convertit la valeur de la chaîne spécifiée en caractère Unicode équivalent.Converts the value of the specified string to its equivalent Unicode character. Un code de retour indique si la conversion a réussi ou a échoué.A return code indicates whether the conversion succeeded or failed.

Implémentations d’interfaces explicites

IComparable.CompareTo(Object)

Compare l'instance actuelle avec un autre objet du même type et retourne un entier qui indique si l'instance actuelle précède ou suit un autre objet ou se trouve à la même position dans l'ordre de tri.Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.

IConvertible.GetTypeCode()

Retourne le TypeCode de cette instance.Returns the TypeCode for this instance.

IConvertible.ToBoolean(IFormatProvider)

Remarque Cette conversion n’est pas prise en charge.Note This conversion is not supported. Toute tentative de ce type lève InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToByte(IFormatProvider).For a description of this member, see ToByte(IFormatProvider).

IConvertible.ToChar(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToChar(IFormatProvider).For a description of this member, see ToChar(IFormatProvider).

IConvertible.ToDateTime(IFormatProvider)

Remarque Cette conversion n’est pas prise en charge.Note This conversion is not supported. Toute tentative de ce type lève InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToDecimal(IFormatProvider)

Remarque Cette conversion n’est pas prise en charge.Note This conversion is not supported. Toute tentative de ce type lève InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Remarque Cette conversion n’est pas prise en charge.Note This conversion is not supported. Toute tentative de ce type lève InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToInt16(IFormatProvider).For a description of this member, see ToInt16(IFormatProvider).

IConvertible.ToInt32(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToInt32(IFormatProvider).For a description of this member, see ToInt32(IFormatProvider).

IConvertible.ToInt64(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToInt64(IFormatProvider).For a description of this member, see ToInt64(IFormatProvider).

IConvertible.ToSByte(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToSByte(IFormatProvider).For a description of this member, see ToSByte(IFormatProvider).

IConvertible.ToSingle(IFormatProvider)

Remarque Cette conversion n’est pas prise en charge.Note This conversion is not supported. Toute tentative de ce type lève InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToString(IFormatProvider)

Convertit la valeur de cette instance en une chaîne équivalente, en utilisant les informations de mise en forme propres à la culture spécifiées.Converts the value of this instance to an equivalent string, using the specified culture-specific formatting information.

IConvertible.ToType(Type, IFormatProvider)

Pour obtenir une description de ce membre, consultez ToType(Type, IFormatProvider).For a description of this member, see ToType(Type, IFormatProvider).

IConvertible.ToUInt16(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToUInt16(IFormatProvider).For a description of this member, see ToUInt16(IFormatProvider).

IConvertible.ToUInt32(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToUInt32(IFormatProvider).For a description of this member, see ToUInt32(IFormatProvider).

IConvertible.ToUInt64(IFormatProvider)

Pour obtenir une description de ce membre, consultez ToUInt64(IFormatProvider).For a description of this member, see ToUInt64(IFormatProvider).

S’applique à

Cohérence de thread

Tous les membres de ce type sont thread-safe.All members of this type are thread safe. Les membres qui semblent modifier l’état de l’instance retournent en fait une nouvelle instance initialisée avec la nouvelle valeur.Members that appear to modify instance state actually return a new instance initialized with the new value. Comme pour tout autre type, la lecture et l’écriture dans 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.As with any other type, reading and writing to a shared variable that contains an instance of this type must be protected by a lock to guarantee thread safety.

Voir aussi