Char Struktur

Definition

Stellt ein Zeichen als UTF-16-Codeeinheit dar.Represents a character as a UTF-16 code unit.

public value class Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
type char = struct
    interface IConvertible
Public Structure Char
Implements IComparable, IComparable(Of Char), IConvertible, IEquatable(Of Char)
Vererbung
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel werden einige der Methoden in Charveranschaulicht.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

Hinweise

Der .NET Framework.NET Framework verwendet die Char -Struktur zur Darstellung eines Unicode-Zeichens.The .NET Framework.NET Framework uses the Char structure to represent a Unicode character. Der Unicode-Standard identifiziert jedes Unicode-Zeichen mit einer eindeutigen 21-Bit-Skalarzahl, die als Codepunkt bezeichnet wird, und definiert das UTF-16-Codierungs Formular, das angibt, wie ein Codepunkt in eine Sequenz von mindestens einem 16-Bit-Wert codiert wird.The Unicode Standard identifies each Unicode character with a unique 21-bit scalar number called a code point, and defines the UTF-16 encoding form that specifies how a code point is encoded into a sequence of one or more 16-bit values. Jeder 16-Bit-Wert reicht von hexadezimal 0x0000 bis 0xFFFF und wird in Char einer Struktur gespeichert.Each 16-bit value ranges from hexadecimal 0x0000 through 0xFFFF and is stored in a Char structure. Der Wert eines Char -Objekts ist sein numerischer 16-Bit-Wert (Ordinal).The value of a Char object is its 16-bit numeric (ordinal) value.

In den folgenden Abschnitten wird die Beziehung zwischen Char einem-Objekt und einem-Zeichen untersucht und einige Char allgemeine Aufgaben erläutert, die mit-Instanzen ausgeführt werdenThe following sections examine the relationship between a Char object and a character and discuss some common tasks performed with Char instances.

Char-Objekte, Unicode-Zeichen und Zeichen folgen Char objects, Unicode characters, and strings
Zeichen und Zeichen Kategorien Characters and character categories
Zeichen und Textelemente Characters and text elements
Allgemeine Vorgänge Common operations
Char-Werte und InteropChar values and interop

Char-Objekte, Unicode-Zeichen und Zeichen folgenChar objects, Unicode characters, and strings

Ein String -Objekt ist eine sequenzielle Char Auflistung von-Strukturen, die eine Text Zeichenfolge darstellt.A String object is a sequential collection of Char structures that represents a string of text. Die meisten Unicode-Zeichen können durch ein einzelnes Char -Objekt dargestellt werden, aber ein Zeichen, das als Basiszeichen, Ersatz Zeichenpaar und/oder kombinierte Zeichenfolge codiert ist Char , wird durch mehrere-Objekte dargestellt.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. Aus diesem Grund ist eine Char Struktur in einem String -Objekt nicht notwendigerweise Äquivalent zu einem einzelnen Unicode-Zeichen.For this reason, a Char structure in a String object is not necessarily equivalent to a single Unicode character.

In den folgenden Fällen werden mehrere 16-Bit-Code Einheiten zur Darstellung einzelner Unicode-Zeichen verwendet:Multiple 16-bit code units are used to represent single Unicode characters in the following cases:

  • Symbole, die aus einem einzelnen Zeichen oder einem Basiszeichen gefolgt von einem oder mehreren kombinierten Zeichen bestehen können.Glyphs, which may consist of a single character or of a base character followed by one or more combining characters. Beispielsweise wird das Zeichen ä durch ein Char -Objekt dargestellt, dessen Code Einheit u + 0061 ist, gefolgt von einem Char -Objekt, dessen Code Einheit u + 0308 ist.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. (Das Zeichen ä kann auch durch ein einzelnes Char Objekt definiert werden, das eine Code Einheit von U + 00E4 aufweist.) Im folgenden Beispiel wird veranschaulicht, dass das Zeichen "ä Char " aus zwei-Objekten besteht.(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:
    '       ä
    
  • Zeichen außerhalb der Unicode-Basis-mehrsprachigen Ebene (BMP).Characters outside the Unicode Basic Multilingual Plane (BMP). Unicode unterstützt zusätzlich zum BMP 16 Ebenen, das die Ebene 0 darstellt.Unicode supports sixteen planes in addition to the BMP, which represents plane 0. Ein Unicode-Codepunkt wird in UTF-32 durch einen 21-Bit-Wert dargestellt, der die Ebene enthält.A Unicode code point is represented in UTF-32 by a 21-bit value that includes the plane. Beispielsweise stellt U + 1d160 das achte Notiz Zeichen des Musik Symbols dar.For example, U+1D160 represents the MUSICAL SYMBOL EIGHTH NOTE character. Da die UTF-16-Codierung nur aus 16 Bits besteht, werden Zeichen außerhalb des BMP durch Ersatz Zeichenpaare in UTF-16 dargestellt.Because UTF-16 encoding has only 16 bits, characters outside the BMP are represented by surrogate pairs in UTF-16. Im folgenden Beispiel wird veranschaulicht, dass die UTF-32-Entsprechung von u + 1d160, das achte Notiz Zeichen für das Musik Symbol, u + D834 u + DD60 ist.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 ist das hohe Ersatz Zeichen. hohe Surrogates reichen von u + D800 und bis u + DBFF.U+D834 is the high surrogate; high surrogates range from U+D800 through U+DBFF. U + DD60 ist das niedrige Ersatz Zeichen. niedrige Surrogates reichen von u + DC00 und bis 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
    

Zeichen und Zeichen KategorienCharacters and character categories

Jedes Unicode-Zeichen oder ein gültiges Ersatz Zeichenpaar gehört zu einer Unicode-Kategorie.Each Unicode character or valid surrogate pair belongs to a Unicode category. In .NET Framework Unicode-Kategorien dargestellt werden, von einem Mitglied der UnicodeCategory Enumeration und enthalten Werte, z. B. UnicodeCategory.CurrencySymbol, UnicodeCategory.LowercaseLetter, und UnicodeCategory.SpaceSeparator, z. B.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.

Um die Unicode-Kategorie eines Zeichens zu bestimmen, wird die GetUnicodeCategory -Methode aufgerufen.To determine the Unicode category of a character, you call the GetUnicodeCategory method. Im folgenden Beispiel GetUnicodeCategory wird beispielsweise aufgerufen, um die Unicode-Kategorie jedes Zeichens in einer Zeichenfolge anzuzeigen.For example, the following example calls the GetUnicodeCategory to display the Unicode category of each character in a string.

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

Intern ist für Zeichen außerhalb des ASCII-Bereichs (u + 0000 bis u + 00FF) die GetUnicodeCategory -Methode von den von der CharUnicodeInfo -Klasse gemeldeten Unicode-Kategorien abhängig.Internally, for characters outside the ASCII range (U+0000 through U+00FF), the GetUnicodeCategory method depends on Unicode categories reported by the CharUnicodeInfo class. Ab werden Unicode-Zeichen basierend auf dem Unicode-Standard, Version 8.0.0,klassifiziert. .NET Framework 4.6.2.NET Framework 4.6.2Starting 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. In Versionen der .NET Framework von der .NET Framework 4.NET Framework 4 .NET Framework 4.6.1.NET Framework 4.6.1in werden Sie basierend auf dem Unicode-Standard, Version 6.3.0,klassifiziert.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.

Zeichen und TextelementeCharacters and text elements

Da ein einzelnes Zeichen durch mehrere Char -Objekte dargestellt werden kann, ist es nicht immer sinnvoll, mit einzelnen Char Objekten zu arbeiten.Because a single character can be represented by multiple Char objects, it is not always meaningful to work with individual Char objects. Im folgenden Beispiel werden z. b. die Unicode-Code Punkte, die die Ägäis-Zahlen 0 bis 9 darstellen, in UTF-16-codierte Code Einheiten konvertiert.For instance, the following example converts the Unicode code points that represent the Aegean numbers zero through 9 to UTF-16 encoded code units. Da Char Objekte fälschlicherweise mit Zeichen gleichgesetzt werden, wird nicht genau berichtet, dass die resultierende Zeichenfolge 20 Zeichen enthält.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.

Sie können wie folgt vorgehen, um die Annahme zu vermeiden Char , dass ein-Objekt ein einzelnes Zeichen darstellt.You can do the following to avoid the assumption that a Char object represents a single character.

  • Sie können mit einem String -Objekt vollständig arbeiten, anstatt mit den einzelnen Zeichen zum darstellen und analysieren linguistischer Inhalte zu arbeiten.You can work with a String object in its entirety instead of working with its individual characters to represent and analyze linguistic content.

  • Sie können die StringInfo -Klasse verwenden, um mit Textelementen anstelle einzelner Char -Objekte zu arbeiten.You can use the StringInfo class to work with text elements instead of individual Char objects. Im folgenden Beispiel wird das StringInfo -Objekt verwendet, um die Anzahl von Textelementen in einer Zeichenfolge zu zählen, die aus den Ägäis-Zahlen 0 bis 9 besteht.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. Da es ein Ersatz Zeichenpaar als einzelnes Zeichen ansieht, meldet es ordnungsgemäß, dass die Zeichenfolge zehn Zeichen enthält.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.
    
  • Wenn eine Zeichenfolge ein Basiszeichen enthält, das mindestens ein Kombinations Zeichen aufweist, können Sie die String.Normalize -Methode aufzurufen, um die Teil Zeichenfolge in eine einzelne UTF-16-codierte Code Einheit zu konvertieren.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. Im folgenden Beispiel wird die String.Normalize -Methode aufgerufen, um das Basiszeichen u + 0061 (Latin Small Letter a) und das Kombinieren von Zeichen u + 0308 (kombinieren von DIAERESIS) zu U + 00E4 (Latin Small Letter a with DIAERESIS) zu konvertieren.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)
    

Allgemeine VorgängeCommon operations

Die Char -Struktur stellt Methoden zum Char Vergleichen von-Objekten bereit, konvertiert den Char Wert des aktuellen-Objekts in ein Objekt eines anderen Typs und bestimmt die Unicode Char -Kategorie eines-Objekts: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:

AufgabeTo do this Diese System.Char Methoden verwendenUse these System.Char methods
Objekte Char vergleichenCompare Char objects CompareTo und EqualsCompareTo and Equals
Konvertieren eines Code Punkts in eine ZeichenfolgeConvert a code point to a string ConvertFromUtf32
Konvertieren eines Char -Objekts oder eines Ersatz Zeichen Char Paars von Objekten in einen CodepunktConvert a Char object or a surrogate pair of Char objects to a code point Für ein einzelnes Zeichen:Convert.ToInt32(Char)For a single character: Convert.ToInt32(Char)

Für ein Ersatz Zeichenpaar oder ein Zeichen in einer Zeichenfolge:Char.ConvertToUtf32For a surrogate pair or a character in a string: Char.ConvertToUtf32
Unicode-Kategorie eines ZeichensGet the Unicode category of a character GetUnicodeCategory
Bestimmen, ob ein Zeichen in einer bestimmten Unicode-Kategorie (z. b. Ziffern, Buchstabe, Satzzeichen, Steuerzeichen usw.) istDetermine whether a character is in a particular Unicode category such as digit, letter, punctuation, control character, and so on IsControl, IsDigit, IsHighSurrogate, ,IsLetter ,IsLower, ,IsSeparator,,, ,IsSurrogatePair,, und IsSurrogate IsPunctuation IsLetterOrDigit IsNumber IsLowSurrogate IsSymbol IsUpperIsWhiteSpaceIsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpper, and IsWhiteSpace
Konvertieren eines Char -Objekts, das eine Zahl darstellt, in einen numerischen WerttypConvert a Char object that represents a number to a numeric value type GetNumericValue
Konvertieren eines Zeichens in einer Zeichenfolge in Char ein-ObjektConvert a character in a string into a Char object Parse und TryParseParse and TryParse
Konvertieren eines Char -Objekts in String ein-ObjektConvert a Char object to a String object ToString
Ändern der Groß-/Kleinschreibung eines Char -ObjektsChange the case of a Char object ToLower, ToLowerInvariant, ToUpper, und ToUpperInvariantToLower, ToLowerInvariant, ToUpper, and ToUpperInvariant

Char-Werte und InteropChar values and interop

Wenn ein verwalteter Char Typ, der als Unicode-UTF-16-codierte Code Einheit dargestellt wird, an nicht verwalteten Code übermittelt wird, konvertiert der Interop-Mars Haller den Zeichensatz standardmäßig in 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. Sie können das DllImportAttribute -Attribut auf Platt Form Aufruf Deklarationen StructLayoutAttribute und das-Attribut auf eine COM-Interop-Deklaration anwenden, um Char zu steuern, welcher Zeichensatz von einem gemarshallten TypYou 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.

Felder

MaxValue

Stellt den größtmöglichen Wert von Char dar.Represents the largest possible value of a Char. Dieses Feld ist konstant.This field is constant.

MinValue

Stellt den kleinstmöglichen Wert von Char dar.Represents the smallest possible value of a Char. Dieses Feld ist konstant.This field is constant.

Methoden

CompareTo(Char)

Vergleicht diese Instanz mit einem angegebenen Char-Objekt und gibt an, ob diese Instanz in der Sortierreihenfolge an einer früheren, späteren oder derselben Position wie das angegebene Char-Objekt aufgeführt wird.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)

Vergleicht diese Instanz mit einem angegebenen Objekt und gibt an, ob diese Instanz in der Sortierreihenfolge an einer früheren, späteren oder derselben Position wie das angegebene Object aufgeführt wird.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)

Konvertiert den angegebenen Unicode-Codepunkt in eine UTF-16-codierte Zeichenfolge.Converts the specified Unicode code point into a UTF-16 encoded string.

ConvertToUtf32(Char, Char)

Konvertiert den Wert eines UTF-16-codierten Ersatzzeichenpaars in einen Unicode-Codepunkt.Converts the value of a UTF-16 encoded surrogate pair into a Unicode code point.

ConvertToUtf32(String, Int32)

Konvertiert den Wert eines UTF-16-codierten Zeichens oder Ersatzzeichenpaars an der angegebenen Position in einer Zeichenfolge in einen Unicode-Codepunkt.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)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Char-Objekt ist.Returns a value that indicates whether this instance is equal to the specified Char object.

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.Returns a value that indicates whether this instance is equal to a specified object.

GetHashCode()

Gibt den Hashcode für diese Instanz zurück.Returns the hash code for this instance.

GetNumericValue(Char)

Konvertiert das angegebene numerische Unicode-Zeichen in eine Gleitkommazahl mit doppelter Genauigkeit.Converts the specified numeric Unicode character to a double-precision floating point number.

GetNumericValue(String, Int32)

Konvertiert das numerische Unicode-Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge in eine Gleitkommazahl mit doppelter Genauigkeit.Converts the numeric Unicode character at the specified position in a specified string to a double-precision floating point number.

GetTypeCode()

Gibt den TypeCode für den Werttyp Char zurück.Returns the TypeCode for value type Char.

GetUnicodeCategory(Char)

Kategorisiert ein angegebenes Unicode-Zeichen in einer Gruppe, die durch einen der UnicodeCategory-Werte bezeichnet wird.Categorizes a specified Unicode character into a group identified by one of the UnicodeCategory values.

GetUnicodeCategory(String, Int32)

Kategorisiert das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge in einer Gruppe, die durch einen der UnicodeCategory-Werte bezeichnet wird.Categorizes the character at the specified position in a specified string into a group identified by one of the UnicodeCategory values.

IsControl(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Steuerzeichen kategorisiert wird.Indicates whether the specified Unicode character is categorized as a control character.

IsControl(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Steuerzeichen kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a control character.

IsDigit(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Dezimalzahl kategorisiert wird.Indicates whether the specified Unicode character is categorized as a decimal digit.

IsDigit(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Dezimalzahl kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a decimal digit.

IsHighSurrogate(Char)

Gibt an, ob das angegebene Char-Objekt ein hohes Ersatzzeichen ist.Indicates whether the specified Char object is a high surrogate.

IsHighSurrogate(String, Int32)

Gibt an, ob das Char-Objekt an der angegebenen Position in einer Zeichenfolge ein hohes Ersatzzeichen ist.Indicates whether the Char object at the specified position in a string is a high surrogate.

IsLetter(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Unicode-Buchstabe kategorisiert wird.Indicates whether the specified Unicode character is categorized as a Unicode letter.

IsLetter(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Unicode-Buchstabe kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a Unicode letter.

IsLetterOrDigit(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Buchstabe oder als Dezimalzahl kategorisiert wird.Indicates whether the specified Unicode character is categorized as a letter or a decimal digit.

IsLetterOrDigit(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Buchstabe oder Dezimalzahl kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a letter or a decimal digit.

IsLower(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Kleinbuchstabe kategorisiert wird.Indicates whether the specified Unicode character is categorized as a lowercase letter.

IsLower(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Kleinbuchstabe kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a lowercase letter.

IsLowSurrogate(Char)

Gibt an, ob das angegebene Char-Objekt ein niedriges Ersatzzeichen ist.Indicates whether the specified Char object is a low surrogate.

IsLowSurrogate(String, Int32)

Gibt an, ob das Char-Objekt an der angegebenen Position in einer Zeichenfolge ein niedriges Ersatzzeichen ist.Indicates whether the Char object at the specified position in a string is a low surrogate.

IsNumber(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Zahl kategorisiert wird.Indicates whether the specified Unicode character is categorized as a number.

IsNumber(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Zahl kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a number.

IsPunctuation(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Satzzeichen kategorisiert wird.Indicates whether the specified Unicode character is categorized as a punctuation mark.

IsPunctuation(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Satzzeichen kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a punctuation mark.

IsSeparator(Char)

Gibt an, ob ein angegebenes Unicode-Zeichen als Trennzeichen kategorisiert wird.Indicates whether the specified Unicode character is categorized as a separator character.

IsSeparator(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Trennzeichen kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a separator character.

IsSurrogate(Char)

Gibt an, ob das angegebene Zeichen über einen Ersatzzeichencodeeinheit verfügt.Indicates whether the specified character has a surrogate code unit.

IsSurrogate(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge über einen Ersatzzeichen-Codeeinheit verfügt.Indicates whether the character at the specified position in a specified string has a surrogate code unit.

IsSurrogatePair(Char, Char)

Gibt an, ob die beiden angegebenen Char-Objekte ein Ersatzzeichenpaar bilden.Indicates whether the two specified Char objects form a surrogate pair.

IsSurrogatePair(String, Int32)

Gibt an, ob zwei aufeinander folgende Char-Objekte an einer angegebenen Position in einer Zeichenfolge ein Ersatzzeichenpaar bilden.Indicates whether two adjacent Char objects at a specified position in a string form a surrogate pair.

IsSymbol(Char)

Gibt an, ob ein angegebenes Unicode-Zeichen als Symbolzeichen kategorisiert wird.Indicates whether the specified Unicode character is categorized as a symbol character.

IsSymbol(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Symbolzeichen kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as a symbol character.

IsUpper(Char)

Gibt an, ob ein angegebenes Unicode-Zeichen als Großbuchstabe kategorisiert wird.Indicates whether the specified Unicode character is categorized as an uppercase letter.

IsUpper(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Großbuchstabe kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as an uppercase letter.

IsWhiteSpace(Char)

Gibt an, ob das angegebene Unicode-Zeichen als Leerzeichen kategorisiert wird.Indicates whether the specified Unicode character is categorized as white space.

IsWhiteSpace(String, Int32)

Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Leerzeichen kategorisiert wird.Indicates whether the character at the specified position in a specified string is categorized as white space.

Parse(String)

Konvertiert den Wert der angegebenen Zeichenfolge in das entsprechende Unicode-Zeichen.Converts the value of the specified string to its equivalent Unicode character.

ToLower(Char)

Konvertiert den Wert eines Unicode-Zeichens in den entsprechenden Kleinbuchstaben.Converts the value of a Unicode character to its lowercase equivalent.

ToLower(Char, CultureInfo)

Konvertiert den Wert eines angegebenen Unicode-Zeichens unter Verwendung der angegebenen kulturabhängigen Formatierungsinformationen in den entsprechenden Kleinbuchstaben.Converts the value of a specified Unicode character to its lowercase equivalent using specified culture-specific formatting information.

ToLowerInvariant(Char)

Konvertiert den Wert eines Unicode-Zeichens in dessen Entsprechung in Kleinbuchstaben unter Verwendung der Regeln der invarianten Kultur für Groß- und Kleinschreibung.Converts the value of a Unicode character to its lowercase equivalent using the casing rules of the invariant culture.

ToString()

Konvertiert den Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung.Converts the value of this instance to its equivalent string representation.

ToString(Char)

Konvertiert das angegebene Unicode-Zeichen in die entsprechende Zeichenfolgendarstellung.Converts the specified Unicode character to its equivalent string representation.

ToString(IFormatProvider)

Konvertiert den Wert dieser Instanz unter Verwendung der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgenentsprechung.Converts the value of this instance to its equivalent string representation using the specified culture-specific format information.

ToUpper(Char)

Konvertiert den Wert eines Unicode-Zeichens in den entsprechenden Großbuchstaben.Converts the value of a Unicode character to its uppercase equivalent.

ToUpper(Char, CultureInfo)

Konvertiert den Wert eines angegebenen Unicode-Zeichens unter Verwendung der angegebenen kulturabhängigen Formatierungsinformationen in den entsprechenden Großbuchstaben.Converts the value of a specified Unicode character to its uppercase equivalent using specified culture-specific formatting information.

ToUpperInvariant(Char)

Konvertiert den Wert eines Unicode-Zeichens in dessen Entsprechung in Großbuchstaben unter Verwendung der Regeln der invarianten Kultur für Groß- und Kleinschreibung.Converts the value of a Unicode character to its uppercase equivalent using the casing rules of the invariant culture.

TryParse(String, Char)

Konvertiert den Wert der angegebenen Zeichenfolge in das entsprechende Unicode-Zeichen.Converts the value of the specified string to its equivalent Unicode character. Ein Rückgabecode gibt an, ob die Konvertierung erfolgreich war oder nicht.A return code indicates whether the conversion succeeded or failed.

Explizite Schnittstellenimplementierungen

IComparable.CompareTo(Object)
IConvertible.GetTypeCode()
IConvertible.ToBoolean(IFormatProvider)

Hinweis Diese Konvertierung wird nicht unterstützt.Note This conversion is not supported. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst.Attempting to do so throws an InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Eine Beschreibung dieses Elements finden Sie unter ToByte(IFormatProvider).For a description of this member, see ToByte(IFormatProvider).

IConvertible.ToChar(IFormatProvider)

Eine Beschreibung dieses Members finden Sie unter ToChar(IFormatProvider).For a description of this member, see ToChar(IFormatProvider).

IConvertible.ToDateTime(IFormatProvider)

Hinweis Diese Konvertierung wird nicht unterstützt.Note This conversion is not supported. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst.Attempting to do so throws an InvalidCastException.

IConvertible.ToDecimal(IFormatProvider)

Hinweis Diese Konvertierung wird nicht unterstützt.Note This conversion is not supported. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst.Attempting to do so throws an InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Hinweis Diese Konvertierung wird nicht unterstützt.Note This conversion is not supported. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst.Attempting to do so throws an InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Eine Beschreibung dieses Elements finden Sie unter ToInt16(IFormatProvider).For a description of this member, see ToInt16(IFormatProvider).

IConvertible.ToInt32(IFormatProvider)

Eine Beschreibung dieses Members finden Sie unter ToInt32(IFormatProvider).For a description of this member, see ToInt32(IFormatProvider).

IConvertible.ToInt64(IFormatProvider)

Eine Beschreibung dieses Members finden Sie unter ToInt64(IFormatProvider).For a description of this member, see ToInt64(IFormatProvider).

IConvertible.ToSByte(IFormatProvider)

Eine Beschreibung dieses Elements finden Sie unter ToSByte(IFormatProvider).For a description of this member, see ToSByte(IFormatProvider).

IConvertible.ToSingle(IFormatProvider)

Hinweis Diese Konvertierung wird nicht unterstützt.Note This conversion is not supported. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst.Attempting to do so throws an InvalidCastException.

IConvertible.ToString(IFormatProvider)
IConvertible.ToType(Type, IFormatProvider)

Eine Beschreibung dieses Members finden Sie unter ToType(Type, IFormatProvider).For a description of this member, see ToType(Type, IFormatProvider).

IConvertible.ToUInt16(IFormatProvider)

Eine Beschreibung dieses Elements finden Sie unter ToUInt16(IFormatProvider).For a description of this member, see ToUInt16(IFormatProvider).

IConvertible.ToUInt32(IFormatProvider)

Eine Beschreibung dieses Members finden Sie unter ToUInt32(IFormatProvider).For a description of this member, see ToUInt32(IFormatProvider).

IConvertible.ToUInt64(IFormatProvider)

Eine Beschreibung dieses Members finden Sie unter ToUInt64(IFormatProvider).For a description of this member, see ToUInt64(IFormatProvider).

Gilt für:

Threadsicherheit

Alle Member dieses Typs sind Thread sicher.All members of this type are thread safe. Member, die scheinbar den Instanzzustand ändern, geben tatsächlich eine neue Instanz zurück, die mit dem neuen Wert initialisiert wurde.Members that appear to modify instance state actually return a new instance initialized with the new value. Wie bei jedem anderen Typ muss das Lesen und Schreiben in eine freigegebene Variable, die eine Instanz dieses Typs enthält, durch eine Sperre geschützt werden, um die Thread Sicherheit zu gewährleisten.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.

Siehe auch