Char Char Char Char Struct

Определение

Представляет символ как кодовую единицу UTF-16.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)
Наследование
Атрибуты
Реализации

Примеры

В следующем примере кода показаны некоторые методы в 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

Комментарии

.NET Framework.NET Framework использует структуру Char для представления символа Юникода.The .NET Framework.NET Framework uses the Char structure to represent a Unicode character. Стандарт Юникод связывает каждый символ Юникода с уникальным 21-битовым скалярным значением, называемым кодовой точкой, а также определяет кодировку UTF-16, которая задает способ кодирования кодовой точки в виде последовательности из одного или нескольких 16-разрядных значений.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. Каждое 16-разрядное значение находится в диапазоне от шестнадцатеричного 0x0000 до 0xFFFF и хранится в структуре Char.Each 16-bit value ranges from hexadecimal 0x0000 through 0xFFFF and is stored in a Char structure. Значением объекта Char является его 16-разрядное числовое (порядковое) значение.The value of a Char object is its 16-bit numeric (ordinal) value.

В следующих разделах рассматривается связь между объектами Char и символами, а также некоторые общие задачи, выполняемые с экземплярами Char.The following sections examine the relationship between a Char object and a character and discuss some common tasks performed with Char instances.

Объекты типа char, символы Юникода и строки Char objects, Unicode characters, and strings
Символы и категории символов Characters and character categories
Символы и текстовые элементы Characters and text elements
Общие операции Common operations
Значения Char и взаимодействиеChar values and interop

Объекты типа char, символы Юникода и строкиChar objects, Unicode characters, and strings

Объект String является упорядоченной коллекцией структур Char, представляющей строку текста.A String object is a sequential collection of Char structures that represents a string of text. Большинство символов Юникода могут быть представлены одним объектом Char, но знак, который кодируется как базовый символ, суррогатная пара и/или последовательность несамостоятельных знаков представляется с помощью нескольких объектов 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. Поэтому структура Char в объекте String не обязательно эквивалентна одному символу Юникода.For this reason, a Char structure in a String object is not necessarily equivalent to a single Unicode character.

Для представления одного символа Юникода используется несколько 16-разрядных кодовых единиц в следующих случаях:Multiple 16-bit code units are used to represent single Unicode characters in the following cases:

  • Глифы, которые могут состоять из одного символа или базового символа со следующими за ним несамостоятельными знаками (одним или более).Glyphs, which may consist of a single character or of a base character followed by one or more combining characters. Например, символ ä представлен объектом Char с кодовой единицей U+0061, за которым следует объект Char с кодовой единицей 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. (Символ ä также может быть представлен как один объект Char с кодовой единицей U+00E4.) В следующем примере показано, что символ ä состоит из двух объектов 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:
    '       ä
    
  • Символы вне основной многоязыковой плоскости Юникода (BMP).Characters outside the Unicode Basic Multilingual Plane (BMP). Юникод поддерживает шестнадцать плоскостей помимо BMP, которая представляет плоскость 0.Unicode supports sixteen planes in addition to the BMP, which represents plane 0. Кодовая точка Юникода в UTF-32 представляется 21-битовым значением, которое содержит плоскость.A Unicode code point is represented in UTF-32 by a 21-bit value that includes the plane. Например, U+1D160 представляет символ MUSICAL SYMBOL EIGHTH NOTE (музыкальный символ восьмая).For example, U+1D160 represents the MUSICAL SYMBOL EIGHTH NOTE character. Поскольку кодировка UTF-16 имеет только 16 разрядов, символы за пределами BMP в кодировке UTF-16 представляются суррогатными парами.Because UTF-16 encoding has only 16 bits, characters outside the BMP are represented by surrogate pairs in UTF-16. В следующем примере показано, что U+D834 U+DD60 является эквивалентом U+1D160, символа MUSICAL SYMBOL EIGHTH NOTE, в UTF-32.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 является старшим символом-заместителем; старшие символы-заместители находятся в диапазоне от U+D800 до U+DBFF.U+D834 is the high surrogate; high surrogates range from U+D800 through U+DBFF. U+DD60 является младшим символом-заместителем; младшие символы-заместители находятся в диапазоне от U+DC00 до 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
    

Символы и категории символовCharacters and character categories

Каждый символ Юникода или допустимая суррогатная пара принадлежит к определенной категории Юникода.Each Unicode character or valid surrogate pair belongs to a Unicode category. В .NET Framework категории Юникода представляются элементами перечисления UnicodeCategory и включают, например, такие значения как UnicodeCategory.CurrencySymbol, UnicodeCategory.LowercaseLetter и UnicodeCategory.SpaceSeparator.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.

Чтобы определить категорию Юникода для символа, следует вызвать метод GetUnicodeCategory.To determine the Unicode category of a character, you call the GetUnicodeCategory method. В следующем примере GetUnicodeCategory используется для отображения категории Юникода каждого символа в строке.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

На внутреннем уровне для символов вне диапазона ASCII (от U+0000 до U+00FF) метод GetUnicodeCategory зависит от категорий Юникода, сообщаемых классом 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. Начиная с .NET Framework 4.6.2.NET Framework 4.6.2 символы Юникода классифицируются на основе The Unicode Standard, 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. В версиях .NET Framework с .NET Framework 4.NET Framework 4 по .NET Framework 4.6.1.NET Framework 4.6.1 они классифицируются на основе The Unicode Standard, 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.

Символы и текстовые элементыCharacters and text elements

Так как один символ может быть представлен несколькими объектами Char, не всегда имеет смысл работать с отдельными объектами Char.Because a single character can be represented by multiple Char objects, it is not always meaningful to work with individual Char objects. Например, в следующем примере кодовые точки Юникода, представляющие эгейские цифры 0–9, преобразуются в кодовые единицы в кодировке 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. Так как в нем объекты Char ошибочно приравниваются к символам, он неточно сообщает, что результирующая строка содержит 20 символов.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.

Чтобы избежать предположения о том, что Char представляет один символ, можно использовать один из следующих способов.You can do the following to avoid the assumption that a Char object represents a single character.

  • Можно работать с объектом String целиком, а не с отдельными его символами, при представлении и анализе его лингвистического содержимого.You can work with a String object in its entirety instead of working with its individual characters to represent and analyze linguistic content.

  • Можно использовать класс StringInfo для работы с элементами текста вместо отдельных объектов Char.You can use the StringInfo class to work with text elements instead of individual Char objects. В следующем примере для подсчета количества элементов текста в строке, состоящей из эгейских цифр от нуля до девяти, используется объект StringInfo.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. Так как он считает суррогатную пару одним символом, он правильно сообщает, что строка содержит десять символов.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.
    
  • Если строка содержит базовый символ с одним или несколькими несамостоятельными знаками, можно вызвать метод String.Normalize для преобразования подстроки в одиночную кодовую единицу в кодировке 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. В следующем примере метод String.Normalize используется для преобразования базового символа U+0061 (LATIN SMALL LETTER A — латинская строчная буква "a") и несамостоятельного знака U+0308 (COMBINING DIAERESIS — комбинируемое надстрочное двоеточие) в U+00E4 (LATIN SMALL LETTER A WITH DIAERESIS — латинская строчная буква "a" с диэризисом).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)
    

Общие операцииCommon operations

Структура Char предоставляет методы для сравнения объектов Char, преобразования значения заданного объекта Char в объект другого типа и определения категории Юникода для объекта 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:

ДействиеTo do this Используйте эти методы System.CharUse these System.Char methods
Сравнение Char объектовCompare Char objects CompareTo и EqualsCompareTo and Equals
Преобразование кодовой точки в строкуConvert a code point to a string ConvertFromUtf32
Преобразовать объект Char или суррогатную пару объектов Char в кодовую точкуConvert a Char object or a surrogate pair of Char objects to a code point Для одного символа:Convert.ToInt32(Char)For a single character: Convert.ToInt32(Char)

Для суррогатной пары или символа в строке: Char.ConvertToUtf32For a surrogate pair or a character in a string: Char.ConvertToUtf32
Получение категории Юникода для символаGet the Unicode category of a character GetUnicodeCategory
Определить, принадлежит ли символ определенной категории Юникода, например: цифры, буквы, знаки препинания, управляющие символы и т. д.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, IsUpper и IsWhiteSpaceIsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpper, and IsWhiteSpace
Преобразовать объект Char, который представляет число, в значение числового типаConvert a Char object that represents a number to a numeric value type GetNumericValue
Преобразует символ в строке в объект CharConvert a character in a string into a Char object Parse и TryParseParse and TryParse
Преобразовать объект Char в объект <xref:System.String<xref:System.String>Convert a Char object to a String object ToString
Изменение регистра объекта CharChange the case of a Char object ToLower, ToLowerInvariant, ToUpper и ToUpperInvariantToLower, ToLowerInvariant, ToUpper, and ToUpperInvariant

Значения Char и взаимодействиеChar values and interop

Когда управляемый тип Char, который представляется как кодовая единица в кодировке Юникода UTF-16, передается в неуправляемый код, маршалер взаимодействия по умолчанию преобразует символы в кодировку 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. Можно применить атрибут DllImportAttribute к объявлениям вызова неуправляемого кода и атрибут StructLayoutAttribute к объявлениям COM-взаимодействия для управления набором символов, используемым при маршалинге типа Char.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.

Поля

MaxValue MaxValue MaxValue MaxValue

Представляет наибольшее возможное значение типа Char.Represents the largest possible value of a Char. Это поле является константой.This field is constant.

MinValue MinValue MinValue MinValue

Представляет минимально допустимое значение типа Char.Represents the smallest possible value of a Char. Это поле является константой.This field is constant.

Методы

CompareTo(Char) CompareTo(Char) CompareTo(Char) CompareTo(Char)

Сравнивает данный экземпляр с заданным объектом Char и показывает, расположен ли данный экземпляр перед, после или на той же позиции в порядке сортировки, что и заданный объект Char.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) CompareTo(Object) CompareTo(Object) CompareTo(Object)

Сравнивает данный экземпляр с заданным объектом и показывает, расположен ли данный экземпляр перед, после или на той же позиции в порядке сортировки, что и заданный объект Object.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) ConvertFromUtf32(Int32) ConvertFromUtf32(Int32) ConvertFromUtf32(Int32)

Преобразует заданную кодовую точку Юникода в строку в кодировке UTF-16.Converts the specified Unicode code point into a UTF-16 encoded string.

ConvertToUtf32(Char, Char) ConvertToUtf32(Char, Char) ConvertToUtf32(Char, Char) ConvertToUtf32(Char, Char)

Преобразует значение суррогатной пары в кодировке UTF-16 в кодовую точку Юникода.Converts the value of a UTF-16 encoded surrogate pair into a Unicode code point.

ConvertToUtf32(String, Int32) ConvertToUtf32(String, Int32) ConvertToUtf32(String, Int32) ConvertToUtf32(String, Int32)

Преобразует значение символа в кодировке UTF-16 или суррогатную пару в заданной позиции в строке в кодовую точку Юникода.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) Equals(Char) Equals(Char) Equals(Char)

Возвращает значение, указывающее, равен ли данный экземпляр указанному объекту Char.Returns a value that indicates whether this instance is equal to the specified Char object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код данного экземпляра.Returns the hash code for this instance.

GetNumericValue(String, Int32) GetNumericValue(String, Int32) GetNumericValue(String, Int32) GetNumericValue(String, Int32)

Преобразует числовой символ Юникода в указанной позиции в указанной строке в число двойной точности с плавающей запятой.Converts the numeric Unicode character at the specified position in a specified string to a double-precision floating point number.

GetNumericValue(Char) GetNumericValue(Char) GetNumericValue(Char) GetNumericValue(Char)

Преобразует указанный числовой символ Юникода в число двойной точности с плавающей запятой.Converts the specified numeric Unicode character to a double-precision floating point number.

GetTypeCode() GetTypeCode() GetTypeCode() GetTypeCode()

Возвращает TypeCode для типа значения Char.Returns the TypeCode for value type Char.

GetUnicodeCategory(Char) GetUnicodeCategory(Char) GetUnicodeCategory(Char) GetUnicodeCategory(Char)

Относит указанный символ Юникода к группе, определенной одним из значений UnicodeCategory.Categorizes a specified Unicode character into a group identified by one of the UnicodeCategory values.

GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32) GetUnicodeCategory(String, Int32)

Относит символ Юникода в указанной позиции к группе, определенной одним из значений UnicodeCategory.Categorizes the character at the specified position in a specified string into a group identified by one of the UnicodeCategory values.

IsControl(Char) IsControl(Char) IsControl(Char) IsControl(Char)

Показывает, относится ли указанный символ Юникода к категории управляющих символов.Indicates whether the specified Unicode character is categorized as a control character.

IsControl(String, Int32) IsControl(String, Int32) IsControl(String, Int32) IsControl(String, Int32)

Показывает, относится ли символ в указанной позиции в указанной строке к категории управляющих символов.Indicates whether the character at the specified position in a specified string is categorized as a control character.

IsDigit(Char) IsDigit(Char) IsDigit(Char) IsDigit(Char)

Показывает, относится ли указанный символ Юникода к категории десятичных цифр.Indicates whether the specified Unicode character is categorized as a decimal digit.

IsDigit(String, Int32) IsDigit(String, Int32) IsDigit(String, Int32) IsDigit(String, Int32)

Показывает, относится ли указанный символ Юникода в указанной позиции в указанной строке к категории десятичных цифр.Indicates whether the character at the specified position in a specified string is categorized as a decimal digit.

IsHighSurrogate(String, Int32) IsHighSurrogate(String, Int32) IsHighSurrogate(String, Int32) IsHighSurrogate(String, Int32)

Определяет, является ли объект Char в заданной позиции в строке старшим символом-заместителем.Indicates whether the Char object at the specified position in a string is a high surrogate.

IsHighSurrogate(Char) IsHighSurrogate(Char) IsHighSurrogate(Char) IsHighSurrogate(Char)

Определяет, является ли заданный объект Char старшим символом-заместителем.Indicates whether the specified Char object is a high surrogate.

IsLetter(Char) IsLetter(Char) IsLetter(Char) IsLetter(Char)

Показывает, относится ли указанный символ Юникода к категории букв Юникода.Indicates whether the specified Unicode character is categorized as a Unicode letter.

IsLetter(String, Int32) IsLetter(String, Int32) IsLetter(String, Int32) IsLetter(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории букв Юникода.Indicates whether the character at the specified position in a specified string is categorized as a Unicode letter.

IsLetterOrDigit(Char) IsLetterOrDigit(Char) IsLetterOrDigit(Char) IsLetterOrDigit(Char)

Показывает, относится ли указанный символ Юникода к категории букв или десятичных цифр.Indicates whether the specified Unicode character is categorized as a letter or a decimal digit.

IsLetterOrDigit(String, Int32) IsLetterOrDigit(String, Int32) IsLetterOrDigit(String, Int32) IsLetterOrDigit(String, Int32)

Показывает, относится ли символ в указанной позиции в указанной строке к категории букв или десятичных цифр.Indicates whether the character at the specified position in a specified string is categorized as a letter or a decimal digit.

IsLower(Char) IsLower(Char) IsLower(Char) IsLower(Char)

Показывает, относится ли указанный символ Юникода к категории букв нижнего регистра.Indicates whether the specified Unicode character is categorized as a lowercase letter.

IsLower(String, Int32) IsLower(String, Int32) IsLower(String, Int32) IsLower(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории букв нижнего регистра.Indicates whether the character at the specified position in a specified string is categorized as a lowercase letter.

IsLowSurrogate(Char) IsLowSurrogate(Char) IsLowSurrogate(Char) IsLowSurrogate(Char)

Определяет, является ли заданный объект Char младшим символом-заместителем.Indicates whether the specified Char object is a low surrogate.

IsLowSurrogate(String, Int32) IsLowSurrogate(String, Int32) IsLowSurrogate(String, Int32) IsLowSurrogate(String, Int32)

Определяет, является ли объект Char в заданной позиции в строке младшим символом-заместителем.Indicates whether the Char object at the specified position in a string is a low surrogate.

IsNumber(Char) IsNumber(Char) IsNumber(Char) IsNumber(Char)

Показывает, относится ли указанный символ Юникода к категории цифр.Indicates whether the specified Unicode character is categorized as a number.

IsNumber(String, Int32) IsNumber(String, Int32) IsNumber(String, Int32) IsNumber(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории цифр.Indicates whether the character at the specified position in a specified string is categorized as a number.

IsPunctuation(Char) IsPunctuation(Char) IsPunctuation(Char) IsPunctuation(Char)

Показывает, относится ли указанный символ Юникода к категории знаков препинания.Indicates whether the specified Unicode character is categorized as a punctuation mark.

IsPunctuation(String, Int32) IsPunctuation(String, Int32) IsPunctuation(String, Int32) IsPunctuation(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории знаков препинания.Indicates whether the character at the specified position in a specified string is categorized as a punctuation mark.

IsSeparator(Char) IsSeparator(Char) IsSeparator(Char) IsSeparator(Char)

Показывает, относится ли указанный символ Юникода к категории знаков-разделителей.Indicates whether the specified Unicode character is categorized as a separator character.

IsSeparator(String, Int32) IsSeparator(String, Int32) IsSeparator(String, Int32) IsSeparator(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории знаков-разделителей.Indicates whether the character at the specified position in a specified string is categorized as a separator character.

IsSurrogate(Char) IsSurrogate(Char) IsSurrogate(Char) IsSurrogate(Char)

Указывает, имеет ли заданный символ заменяющую кодовую единицу.Indicates whether the specified character has a surrogate code unit.

IsSurrogate(String, Int32) IsSurrogate(String, Int32) IsSurrogate(String, Int32) IsSurrogate(String, Int32)

Указывает, имеет ли указанный символ в указанной позиции в указанной строке заменяющую кодовую единицу.Indicates whether the character at the specified position in a specified string has a surrogate code unit.

IsSurrogatePair(String, Int32) IsSurrogatePair(String, Int32) IsSurrogatePair(String, Int32) IsSurrogatePair(String, Int32)

Определяет, образуют ли два смежных объекта Char в заданной позиции в строке суррогатную пару.Indicates whether two adjacent Char objects at a specified position in a string form a surrogate pair.

IsSurrogatePair(Char, Char) IsSurrogatePair(Char, Char) IsSurrogatePair(Char, Char) IsSurrogatePair(Char, Char)

Определяет, образуют ли два заданных объекта Char суррогатную пару.Indicates whether the two specified Char objects form a surrogate pair.

IsSymbol(Char) IsSymbol(Char) IsSymbol(Char) IsSymbol(Char)

Показывает, относится ли указанный символ Юникода к категории символьных знаков.Indicates whether the specified Unicode character is categorized as a symbol character.

IsSymbol(String, Int32) IsSymbol(String, Int32) IsSymbol(String, Int32) IsSymbol(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории символьных знаков.Indicates whether the character at the specified position in a specified string is categorized as a symbol character.

IsUpper(Char) IsUpper(Char) IsUpper(Char) IsUpper(Char)

Показывает, относится ли указанный символ Юникода к категории букв верхнего регистра.Indicates whether the specified Unicode character is categorized as an uppercase letter.

IsUpper(String, Int32) IsUpper(String, Int32) IsUpper(String, Int32) IsUpper(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории букв верхнего регистра.Indicates whether the character at the specified position in a specified string is categorized as an uppercase letter.

IsWhiteSpace(Char) IsWhiteSpace(Char) IsWhiteSpace(Char) IsWhiteSpace(Char)

Показывает, относится ли указанный символ Юникода к категории пробелов.Indicates whether the specified Unicode character is categorized as white space.

IsWhiteSpace(String, Int32) IsWhiteSpace(String, Int32) IsWhiteSpace(String, Int32) IsWhiteSpace(String, Int32)

Показывает, относится ли указанный символ в указанной позиции в указанной строке к категории пробелов.Indicates whether the character at the specified position in a specified string is categorized as white space.

Parse(String) Parse(String) Parse(String) Parse(String)

Преобразует значение указанной строки в эквивалентный символ Юникода.Converts the value of the specified string to its equivalent Unicode character.

ToLower(Char, CultureInfo) ToLower(Char, CultureInfo) ToLower(Char, CultureInfo) ToLower(Char, CultureInfo)

Преобразует значение указанного символа Юникода в его эквивалент в нижнем регистре, используя указанные сведения о форматировании, связанные с языком и региональными параметрами.Converts the value of a specified Unicode character to its lowercase equivalent using specified culture-specific formatting information.

ToLower(Char) ToLower(Char) ToLower(Char) ToLower(Char)

Преобразует значение символа Юникода в его эквивалент в нижнем регистре.Converts the value of a Unicode character to its lowercase equivalent.

ToLowerInvariant(Char) ToLowerInvariant(Char) ToLowerInvariant(Char) ToLowerInvariant(Char)

Преобразует значение символа Юникода в его эквивалент в нижнем регистре, используя правила изменения регистра, связанные с инвариантным языком и региональными параметрами.Converts the value of a Unicode character to its lowercase equivalent using the casing rules of the invariant culture.

ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider)

Преобразует значение этого экземпляра в эквивалентное ему строковое представление с использованием указанных сведений об особенностях форматирования, связанных с языком и региональными параметрами.Converts the value of this instance to its equivalent string representation using the specified culture-specific format information.

ToString(Char) ToString(Char) ToString(Char) ToString(Char)

Преобразует указанный символ Юникода в эквивалентное ему строковое представление.Converts the specified Unicode character to its equivalent string representation.

ToString() ToString() ToString() ToString()

Преобразует значение этого экземпляра в эквивалентное ему строковое представление.Converts the value of this instance to its equivalent string representation.

ToUpper(Char, CultureInfo) ToUpper(Char, CultureInfo) ToUpper(Char, CultureInfo) ToUpper(Char, CultureInfo)

Преобразует значение указанного символа Юникода в его эквивалент в верхнем регистре, используя указанные сведения о форматировании, связанные с языком и региональными параметрами.Converts the value of a specified Unicode character to its uppercase equivalent using specified culture-specific formatting information.

ToUpper(Char) ToUpper(Char) ToUpper(Char) ToUpper(Char)

Преобразует значение символа Юникода в эквивалентный символ верхнего регистра.Converts the value of a Unicode character to its uppercase equivalent.

ToUpperInvariant(Char) ToUpperInvariant(Char) ToUpperInvariant(Char) ToUpperInvariant(Char)

Преобразует значение символа Юникода в его эквивалент в верхнем регистре, используя правила изменения регистра, связанные с инвариантным языком и региональными параметрами.Converts the value of a Unicode character to its uppercase equivalent using the casing rules of the invariant culture.

TryParse(String, Char) TryParse(String, Char) TryParse(String, Char) TryParse(String, Char)

Преобразует значение указанной строки в эквивалентный символ Юникода.Converts the value of the specified string to its equivalent Unicode character. Возвращает код, позволяющий определить, успешно ли выполнено преобразование.A return code indicates whether the conversion succeeded or failed.

Явные реализации интерфейса

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

Примечание. Это преобразование не поддерживается.Note This conversion is not supported. Попытка его выполнения приводит к созданию исключения InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider)

Описание этого члена см. в разделе ToByte(IFormatProvider).For a description of this member, see ToByte(IFormatProvider).

IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider)

Описание этого члена см. в разделе ToChar(IFormatProvider).For a description of this member, see ToChar(IFormatProvider).

IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider)

Примечание. Это преобразование не поддерживается.Note This conversion is not supported. Попытка его выполнения приводит к созданию исключения InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider)

Примечание. Это преобразование не поддерживается.Note This conversion is not supported. Попытка его выполнения приводит к созданию исключения InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider)

Примечание. Это преобразование не поддерживается.Note This conversion is not supported. Попытка его выполнения приводит к созданию исключения InvalidCastException.Attempting to do so throws an InvalidCastException.

IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider)

Описание этого члена см. в разделе ToInt16(IFormatProvider).For a description of this member, see ToInt16(IFormatProvider).

IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider)

Описание этого члена см. в разделе ToInt32(IFormatProvider).For a description of this member, see ToInt32(IFormatProvider).

IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider)

Описание этого члена см. в разделе ToInt64(IFormatProvider).For a description of this member, see ToInt64(IFormatProvider).

IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider)

Описание этого члена см. в разделе ToSByte(IFormatProvider).For a description of this member, see ToSByte(IFormatProvider).

IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider)

Примечание. Это преобразование не поддерживается.Note This conversion is not supported. Попытка его выполнения приводит к созданию исключения InvalidCastException.Attempting to do so throws an InvalidCastException.

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

Описание этого члена см. в разделе ToType(Type, IFormatProvider).For a description of this member, see ToType(Type, IFormatProvider).

IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider)

Описание этого члена см. в разделе ToUInt16(IFormatProvider).For a description of this member, see ToUInt16(IFormatProvider).

IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider)

Описание этого члена см. в разделе ToUInt32(IFormatProvider).For a description of this member, see ToUInt32(IFormatProvider).

IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider)

Описание этого члена см. в разделе ToUInt64(IFormatProvider).For a description of this member, see ToUInt64(IFormatProvider).

Применяется к

Потокобезопасность

Все члены этого типа являются потокобезопасными.All members of this type are thread safe. Члены, которые могут изменить состояние экземпляра, в действительности возвращают новый экземпляр, инициализированный новым значением.Members that appear to modify instance state actually return a new instance initialized with the new value. Как с любым другим типом, чтение и запись общей переменной, которая содержит экземпляр этого типа, должны быть защищены блокировкой для обеспечения потокобезопасности.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.

Дополнительно