Char Структура

Определение

Представляет символ в виде единицы кода UTF-16.

public value class char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
public value class char : IComparable<char>, IConvertible, IEquatable<char>, IParsable<char>, ISpanParsable<char>, IUtf8SpanParsable<char>, System::Numerics::IAdditionOperators<char, char, char>, System::Numerics::IAdditiveIdentity<char, char>, System::Numerics::IBinaryInteger<char>, System::Numerics::IBinaryNumber<char>, System::Numerics::IBitwiseOperators<char, char, char>, System::Numerics::IComparisonOperators<char, char, bool>, System::Numerics::IDecrementOperators<char>, System::Numerics::IDivisionOperators<char, char, char>, System::Numerics::IEqualityOperators<char, char, bool>, System::Numerics::IIncrementOperators<char>, System::Numerics::IMinMaxValue<char>, System::Numerics::IModulusOperators<char, char, char>, System::Numerics::IMultiplicativeIdentity<char, char>, System::Numerics::IMultiplyOperators<char, char, char>, System::Numerics::INumber<char>, System::Numerics::INumberBase<char>, System::Numerics::IShiftOperators<char, int, char>, System::Numerics::ISubtractionOperators<char, char, char>, System::Numerics::IUnaryNegationOperators<char, char>, System::Numerics::IUnaryPlusOperators<char, char>, System::Numerics::IUnsignedNumber<char>
public value class char : IComparable, IComparable<char>, IConvertible, IEquatable<char>, ISpanFormattable
public value class char : IComparable<char>, IConvertible, IEquatable<char>, IParsable<char>, ISpanParsable<char>, System::Numerics::IAdditionOperators<char, char, char>, System::Numerics::IAdditiveIdentity<char, char>, System::Numerics::IBinaryInteger<char>, System::Numerics::IBinaryNumber<char>, System::Numerics::IBitwiseOperators<char, char, char>, System::Numerics::IComparisonOperators<char, char, bool>, System::Numerics::IDecrementOperators<char>, System::Numerics::IDivisionOperators<char, char, char>, System::Numerics::IEqualityOperators<char, char, bool>, System::Numerics::IIncrementOperators<char>, System::Numerics::IMinMaxValue<char>, System::Numerics::IModulusOperators<char, char, char>, System::Numerics::IMultiplicativeIdentity<char, char>, System::Numerics::IMultiplyOperators<char, char, char>, System::Numerics::INumber<char>, System::Numerics::INumberBase<char>, System::Numerics::IShiftOperators<char, int, char>, System::Numerics::ISubtractionOperators<char, char, char>, System::Numerics::IUnaryNegationOperators<char, char>, System::Numerics::IUnaryPlusOperators<char, char>, System::Numerics::IUnsignedNumber<char>
public value class char : IComparable, IConvertible
public value class char : IComparable, IComparable<char>, IEquatable<char>
public struct Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
public readonly struct Char : IComparable<char>, IConvertible, IEquatable<char>, IParsable<char>, ISpanParsable<char>, IUtf8SpanParsable<char>, System.Numerics.IAdditionOperators<char,char,char>, System.Numerics.IAdditiveIdentity<char,char>, System.Numerics.IBinaryInteger<char>, System.Numerics.IBinaryNumber<char>, System.Numerics.IBitwiseOperators<char,char,char>, System.Numerics.IComparisonOperators<char,char,bool>, System.Numerics.IDecrementOperators<char>, System.Numerics.IDivisionOperators<char,char,char>, System.Numerics.IEqualityOperators<char,char,bool>, System.Numerics.IIncrementOperators<char>, System.Numerics.IMinMaxValue<char>, System.Numerics.IModulusOperators<char,char,char>, System.Numerics.IMultiplicativeIdentity<char,char>, System.Numerics.IMultiplyOperators<char,char,char>, System.Numerics.INumber<char>, System.Numerics.INumberBase<char>, System.Numerics.IShiftOperators<char,int,char>, System.Numerics.ISubtractionOperators<char,char,char>, System.Numerics.IUnaryNegationOperators<char,char>, System.Numerics.IUnaryPlusOperators<char,char>, System.Numerics.IUnsignedNumber<char>
public readonly struct Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
public readonly struct Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>, ISpanFormattable
public readonly struct Char : IComparable<char>, IConvertible, IEquatable<char>, IParsable<char>, ISpanParsable<char>, System.Numerics.IAdditionOperators<char,char,char>, System.Numerics.IAdditiveIdentity<char,char>, System.Numerics.IBinaryInteger<char>, System.Numerics.IBinaryNumber<char>, System.Numerics.IBitwiseOperators<char,char,char>, System.Numerics.IComparisonOperators<char,char,bool>, System.Numerics.IDecrementOperators<char>, System.Numerics.IDivisionOperators<char,char,char>, System.Numerics.IEqualityOperators<char,char,bool>, System.Numerics.IIncrementOperators<char>, System.Numerics.IMinMaxValue<char>, System.Numerics.IModulusOperators<char,char,char>, System.Numerics.IMultiplicativeIdentity<char,char>, System.Numerics.IMultiplyOperators<char,char,char>, System.Numerics.INumber<char>, System.Numerics.INumberBase<char>, System.Numerics.IShiftOperators<char,int,char>, System.Numerics.ISubtractionOperators<char,char,char>, System.Numerics.IUnaryNegationOperators<char,char>, System.Numerics.IUnaryPlusOperators<char,char>, System.Numerics.IUnsignedNumber<char>
[System.Serializable]
public struct Char : IComparable, IConvertible
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct Char : IComparable, IComparable<char>, IConvertible, IEquatable<char>
public struct Char : IComparable, IComparable<char>, IEquatable<char>
type char = struct
    interface IConvertible
type char = struct
    interface IConvertible
    interface IFormattable
    interface IParsable<char>
    interface ISpanFormattable
    interface ISpanParsable<char>
    interface IUtf8SpanFormattable
    interface IUtf8SpanParsable<char>
    interface IAdditionOperators<char, char, char>
    interface IAdditiveIdentity<char, char>
    interface IBinaryInteger<char>
    interface IBinaryNumber<char>
    interface IBitwiseOperators<char, char, char>
    interface IComparisonOperators<char, char, bool>
    interface IEqualityOperators<char, char, bool>
    interface IDecrementOperators<char>
    interface IDivisionOperators<char, char, char>
    interface IIncrementOperators<char>
    interface IModulusOperators<char, char, char>
    interface IMultiplicativeIdentity<char, char>
    interface IMultiplyOperators<char, char, char>
    interface INumber<char>
    interface INumberBase<char>
    interface ISubtractionOperators<char, char, char>
    interface IUnaryNegationOperators<char, char>
    interface IUnaryPlusOperators<char, char>
    interface IShiftOperators<char, int, char>
    interface IMinMaxValue<char>
    interface IUnsignedNumber<char>
type char = struct
    interface IConvertible
    interface ISpanFormattable
    interface IFormattable
type char = struct
    interface IConvertible
    interface IFormattable
    interface IParsable<char>
    interface ISpanFormattable
    interface ISpanParsable<char>
    interface IAdditionOperators<char, char, char>
    interface IAdditiveIdentity<char, char>
    interface IBinaryInteger<char>
    interface IBinaryNumber<char>
    interface IBitwiseOperators<char, char, char>
    interface IComparisonOperators<char, char, bool>
    interface IEqualityOperators<char, char, bool>
    interface IDecrementOperators<char>
    interface IDivisionOperators<char, char, char>
    interface IIncrementOperators<char>
    interface IModulusOperators<char, char, char>
    interface IMultiplicativeIdentity<char, char>
    interface IMultiplyOperators<char, char, char>
    interface INumber<char>
    interface INumberBase<char>
    interface ISubtractionOperators<char, char, char>
    interface IUnaryNegationOperators<char, char>
    interface IUnaryPlusOperators<char, char>
    interface IShiftOperators<char, int, char>
    interface IMinMaxValue<char>
    interface IUnsignedNumber<char>
type char = struct
    interface IConvertible
    interface IFormattable
    interface IParsable<char>
    interface ISpanFormattable
    interface ISpanParsable<char>
    interface IAdditionOperators<char, char, char>
    interface IAdditiveIdentity<char, char>
    interface IBinaryInteger<char>
    interface IBinaryNumber<char>
    interface IBitwiseOperators<char, char, char>
    interface IComparisonOperators<char, char, bool>
    interface IEqualityOperators<char, char, bool>
    interface IDecrementOperators<char>
    interface IDivisionOperators<char, char, char>
    interface IIncrementOperators<char>
    interface IModulusOperators<char, char, char>
    interface IMultiplicativeIdentity<char, char>
    interface IMultiplyOperators<char, char, char>
    interface INumber<char>
    interface INumberBase<char>
    interface ISubtractionOperators<char, char, char>
    interface IUnaryNegationOperators<char, char>
    interface IUnaryPlusOperators<char, char>
    interface IUtf8SpanFormattable
    interface IUtf8SpanParsable<char>
    interface IShiftOperators<char, int, char>
    interface IMinMaxValue<char>
    interface IUnsignedNumber<char>
[<System.Serializable>]
type char = struct
    interface IConvertible
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type char = struct
    interface IConvertible
type char = struct
Public Structure Char
Implements IComparable, IComparable(Of Char), IConvertible, IEquatable(Of Char)
Public Structure Char
Implements IAdditionOperators(Of Char, Char, Char), IAdditiveIdentity(Of Char, Char), IBinaryInteger(Of Char), IBinaryNumber(Of Char), IBitwiseOperators(Of Char, Char, Char), IComparable(Of Char), IComparisonOperators(Of Char, Char, Boolean), IConvertible, IDecrementOperators(Of Char), IDivisionOperators(Of Char, Char, Char), IEqualityOperators(Of Char, Char, Boolean), IEquatable(Of Char), IIncrementOperators(Of Char), IMinMaxValue(Of Char), IModulusOperators(Of Char, Char, Char), IMultiplicativeIdentity(Of Char, Char), IMultiplyOperators(Of Char, Char, Char), INumber(Of Char), INumberBase(Of Char), IParsable(Of Char), IShiftOperators(Of Char, Integer, Char), ISpanParsable(Of Char), ISubtractionOperators(Of Char, Char, Char), IUnaryNegationOperators(Of Char, Char), IUnaryPlusOperators(Of Char, Char), IUnsignedNumber(Of Char), IUtf8SpanParsable(Of Char)
Public Structure Char
Implements IComparable, IComparable(Of Char), IConvertible, IEquatable(Of Char), ISpanFormattable
Public Structure Char
Implements IAdditionOperators(Of Char, Char, Char), IAdditiveIdentity(Of Char, Char), IBinaryInteger(Of Char), IBinaryNumber(Of Char), IBitwiseOperators(Of Char, Char, Char), IComparable(Of Char), IComparisonOperators(Of Char, Char, Boolean), IConvertible, IDecrementOperators(Of Char), IDivisionOperators(Of Char, Char, Char), IEqualityOperators(Of Char, Char, Boolean), IEquatable(Of Char), IIncrementOperators(Of Char), IMinMaxValue(Of Char), IModulusOperators(Of Char, Char, Char), IMultiplicativeIdentity(Of Char, Char), IMultiplyOperators(Of Char, Char, Char), INumber(Of Char), INumberBase(Of Char), IParsable(Of Char), IShiftOperators(Of Char, Integer, Char), ISpanParsable(Of Char), ISubtractionOperators(Of Char, Char, Char), IUnaryNegationOperators(Of Char, Char), IUnaryPlusOperators(Of Char, Char), IUnsignedNumber(Of Char)
Public Structure Char
Implements IComparable, IConvertible
Public Structure Char
Implements IComparable, IComparable(Of Char), IEquatable(Of Char)
Наследование
Атрибуты
Реализации
IComparable IComparable<Char> IConvertible IEquatable<Char> IComparable<TSelf> IEquatable<TSelf> IFormattable IParsable<Char> IParsable<TSelf> ISpanFormattable ISpanParsable<Char> ISpanParsable<TSelf> IUtf8SpanFormattable IUtf8SpanParsable<Char> IUtf8SpanParsable<TSelf> IAdditionOperators<Char,Char,Char> IAdditionOperators<TSelf,TSelf,TSelf> IAdditiveIdentity<Char,Char> IAdditiveIdentity<TSelf,TSelf> IBinaryInteger<Char> IBinaryNumber<Char> IBinaryNumber<TSelf> IBitwiseOperators<Char,Char,Char> IBitwiseOperators<TSelf,TSelf,TSelf> IComparisonOperators<Char,Char,Boolean> IComparisonOperators<TSelf,TSelf,Boolean> IDecrementOperators<Char> IDecrementOperators<TSelf> IDivisionOperators<Char,Char,Char> IDivisionOperators<TSelf,TSelf,TSelf> IEqualityOperators<Char,Char,Boolean> IEqualityOperators<TSelf,TOther,TResult> IEqualityOperators<TSelf,TSelf,Boolean> IIncrementOperators<Char> IIncrementOperators<TSelf> IMinMaxValue<Char> IModulusOperators<Char,Char,Char> IModulusOperators<TSelf,TSelf,TSelf> IMultiplicativeIdentity<Char,Char> IMultiplicativeIdentity<TSelf,TSelf> IMultiplyOperators<Char,Char,Char> IMultiplyOperators<TSelf,TSelf,TSelf> INumber<Char> INumber<TSelf> INumberBase<Char> INumberBase<TSelf> IShiftOperators<Char,Int32,Char> IShiftOperators<TSelf,Int32,TSelf> ISubtractionOperators<Char,Char,Char> ISubtractionOperators<TSelf,TSelf,TSelf> IUnaryNegationOperators<Char,Char> IUnaryNegationOperators<TSelf,TSelf> IUnaryPlusOperators<Char,Char> IUnaryPlusOperators<TSelf,TSelf> IUnsignedNumber<Char>

Примеры

В следующем примере кода демонстрируется некоторые методы.Char

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

let chA = 'A'
let ch1 = '1'
let str = "test string"

printfn $"{chA.CompareTo 'B'}"          //-----------  Output: "-1" (meaning 'A' is 1 less than 'B')
printfn $"{chA.Equals 'A'}"             //-----------  Output: "True"
printfn $"{Char.GetNumericValue ch1}"   //-----------  Output: "1"
printfn $"{Char.IsControl '\t'}"        //-----------  Output: "True"
printfn $"{Char.IsDigit ch1}"           //-----------  Output: "True"
printfn $"{Char.IsLetter ','}"          //-----------  Output: "False"
printfn $"{Char.IsLower 'u'}"           //-----------  Output: "True"
printfn $"{Char.IsNumber ch1}"          //-----------  Output: "True"
printfn $"{Char.IsPunctuation '.'}"     //-----------  Output: "True"
printfn $"{Char.IsSeparator(str, 4)}"   //-----------  Output: "True"
printfn $"{Char.IsSymbol '+'}"          //-----------  Output: "True"
printfn $"{Char.IsWhiteSpace(str, 4)}"  //-----------  Output: "True"
printfn $"""{Char.Parse "S"}"""         //-----------  Output: "S"
printfn $"{Char.ToLower 'M'}"           //-----------  Output: "m"
printfn $"{'x'}"                        //-----------  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

Комментарии

Структура Char представляет кодовые точки Юникода с помощью кодировки UTF-16. Значение Char объекта — это 16-разрядное числовое (порядковое) значение.

Если вы не знакомы с Юникодом, скалярными значениями, точками кода, суррогатными парами, UTF-16 и типом Rune , см. статью "Введение в кодировку символов" в .NET.

В этой статье изучается связь между Char объектом и персонажем и обсуждаются некоторые распространенные задачи, которые выполняются с Char экземплярами. Рекомендуется рассмотреть тип, представленный Rune в .NET Core 3.0, в качестве альтернативы выполнению Char некоторых из этих задач.

Объекты Char, символы Юникода и строки

String Объект представляет собой последовательную коллекцию Char структур, представляющих строку текста. Большинство символов Юникода могут быть представлены одним Char объектом, но символ, закодированный как базовый символ, суррогатная пара и /или объединение последовательности символов, представлена несколькими Char объектами. По этой причине Char структура в String объекте не обязательно эквивалентна одному символу Юникода.

Несколько 16-разрядных единиц кода используются для представления отдельных символов Юникода в следующих случаях:

  • Глифы, которые могут состоять из одного символа или базового символа, за которым следует один или несколько объединенных символов. Например, символ ä представлен Char объектом, кодовая единица которого — U+0061, за которой следует Char объект, кодовая единица которого — U+0308. (Символ ä также можно определить одним объектом с единицей Char кода U+00E4.) В следующем примере показано, что символ ä состоит из двух Char объектов.

    using System;
    using System.IO;
    
    public class Example1
    {
        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:
    //       ä
    
    open System
    open System.IO
    
    let sw = new StreamWriter("chars1.txt")
    let chars = [| '\u0061'; '\u0308' |]
    let string = String chars
    sw.WriteLine string
    sw.Close()
    
    // The example produces the following output:
    //       ä
    
    Imports System.IO
    
    Module Example2
        Public Sub Main()
            Dim sw As New StreamWriter("chars1.txt")
            Dim chars() As Char = {ChrW(&H61), ChrW(&H308)}
            Dim strng As New String(chars)
            sw.WriteLine(strng)
            sw.Close()
        End Sub
    End Module
    ' The example produces the following output:
    '       ä
    
  • Символы за пределами базовой многоязычной плоскости Юникода (BMP). Юникод поддерживает шестнадцать уровней в дополнение к BMP, который представляет уровень 0. Кодовая точка Юникода представлена в UTF-32 21-разрядным значением, включающим плоскость. Например, U+1D160 представляет символ МУЗЫКАЛЬНОЙ ВОСЬМОЙ НОТЫ. Так как кодировка UTF-16 имеет только 16 бит, символы за пределами BMP представлены суррогатными парами в UTF-16. В следующем примере показано, что эквивалент UTF-32 для символа МУЗЫКАЛЬНЫЙ СИМВОЛ Восьмая Нотка (U+1D160) равен U+D834 U+DD60. U+D834 — это старший суррогат; диапазон старших суррогатов — от U+D800 до U+DBFF. U+DD60 — это низкий суррогат; низкие суррогаты находятся в диапазоне от U+DC00 до U+DFFF.

    using System;
    using System.IO;
    
    public class Example3
    {
        public static void Main()
        {
            StreamWriter sw = new StreamWriter(@".\chars2.txt");
            int utf32 = 0x1D160;
            string surrogate = Char.ConvertFromUtf32(utf32);
            sw.WriteLine($"U+{utf32:X6} UTF-32 = {surrogate} ({ShowCodePoints(surrogate)}) UTF-16");
            sw.Close();
        }
    
        private static string ShowCodePoints(string value)
        {
            string retval = null;
            foreach (var ch in value)
                retval += $"U+{Convert.ToUInt16(ch):X4} ";
    
            return retval.Trim();
        }
    }
    // The example produces the following output:
    //       U+01D160 UTF-32 = ð (U+D834 U+DD60) UTF-16
    
    open System
    open System.IO
    
    let showCodePoints (value: char seq) =
        let str =
            value
            |> Seq.map (fun ch -> $"U+{Convert.ToUInt16 ch:X4}")
            |> String.concat ""
        str.Trim()
    
    let sw = new StreamWriter(@".\chars2.txt")
    let utf32 = 0x1D160
    let surrogate = Char.ConvertFromUtf32 utf32
    sw.WriteLine $"U+{utf32:X6} UTF-32 = {surrogate} ({showCodePoints surrogate}) UTF-16"
    sw.Close()
    
    // The example produces the following output:
    //       U+01D160 UTF-32 = ð (U+D834 U+DD60) UTF-16
    
    Imports System.IO
    
    Module Example4
        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
    

Символы и категории символов

Каждый символ Юникода или допустимая суррогатная пара принадлежит категории Юникода. В .NET категории Юникода представлены элементами UnicodeCategory перечисления и включают такие значения, как UnicodeCategory.CurrencySymbol, UnicodeCategory.LowercaseLetterи UnicodeCategory.SpaceSeparator, например.

Чтобы определить категорию символа Юникода, вызовите GetUnicodeCategory метод. Например, следующий пример вызывает GetUnicodeCategory для отображения категории Юникода каждого символа в строке. Пример работает правильно, только если в экземпляре 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($"'{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
open System

// Define a string with a variety of character categories.
let s = "The red car drove down the long, narrow, secluded road."
// Determine the category of each character.
for ch in s do
    printfn $"'{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 Example1
    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 зависит от категорий Unicode, которые определяются классом CharUnicodeInfo. Символы Юникода классифицируются на основе Стандарта Юникода версии 8.0.0.

Символы и текстовые элементы

Так как один символ может быть представлен несколькими Char объектами, он не всегда имеет смысл работать с отдельными Char объектами. Например, в следующем примере преобразуются кодовые точки Юникода, представляющие эгейские числа от нуля до 9, в кодовые единицы в кодировке UTF-16. Так как он ошибочно приравнивает Char объекты с символами, он неточно сообщает, что результирующая строка имеет 20 символов.

using System;

public class Example5
{
    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 {result.Length} characters.");
    }
}
// The example displays the following output:
//     The string contains 20 characters.
open System

let result =
    [ for i in 0x10107..0x10110 do  // Range of Aegean numbers.
        Char.ConvertFromUtf32 i ]
    |> String.concat ""

printfn $"The string contains {result.Length} characters."


// The example displays the following output:
//     The string contains 20 characters.
Module Example5
    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 объект представляет один символ, можно сделать следующее:

  • Вы можете работать с String объектом в целом, а не работать с отдельными символами, чтобы представлять и анализировать лингвистическое содержимое.

  • Вы можете использовать String.EnumerateRunes , как показано в следующем примере:

    int CountLetters(string s)
    {
        int letterCount = 0;
    
        foreach (Rune rune in s.EnumerateRunes())
        {
            if (Rune.IsLetter(rune))
            { letterCount++; }
        }
    
        return letterCount;
    }
    
    let countLetters (s: string) =
        let mutable letterCount = 0
    
        for rune in s.EnumerateRunes() do
            if Rune.IsLetter rune then
                letterCount <- letterCount + 1
    
        letterCount
    
  • Вы можете использовать класс StringInfo для работы с текстовыми элементами вместо отдельных объектов Char. В следующем примере объект используется StringInfo для подсчета количества текстовых элементов в строке, состоящей из Эгейских чисел ноль до девяти. Так как он считает суррогатную пару одним символом, он правильно сообщает, что строка содержит десять символов.

    using System;
    using System.Globalization;
    
    public class Example4
    {
        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 {si.LengthInTextElements} characters.");
        }
    }
    // The example displays the following output:
    //       The string contains 10 characters.
    
    open System
    open System.Globalization
    
    let result =
        [ for i in 0x10107..0x10110 do  // Range of Aegean numbers.
            Char.ConvertFromUtf32 i ]
        |> String.concat ""
    
    
    let si = StringInfo result
    printfn $"The string contains {si.LengthInTextElements} characters."
    
    // The example displays the following output:
    //       The string contains 10 characters.
    
    Imports System.Globalization
    
    Module Example6
        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. В следующем примере вызывается String.Normalize метод для преобразования базового символа U+0061 (LATIN SMALL LETTER A) и объединения символов U+0308 (ОБЪЕДИНЕНИЕ DIAERESIS) в U+00E4 (ЛАТИНСКАЯ НЕБОЛЬШАЯ БУКВА A С DIAERESIS).

    using System;
    
    public class Example2
    {
        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: {s.Length} (");
            for (int ctr = 0; ctr < s.Length; ctr++)
            {
                Console.Write($"U+{Convert.ToUInt16(s[ctr]):X4}");
                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)
    
    open System
    
    let showString (s: string) =
        printf $"Length of string: {s.Length} ("
        for i = 0 to s.Length - 1 do
            printf $"U+{Convert.ToUInt16 s[i]:X4}"
            if i <> s.Length - 1 then printf " "
        printfn ")\n"
    
    let combining = "\u0061\u0308"
    showString combining
    
    let normalized = combining.Normalize()
    showString normalized
    
    // The example displays the following output:
    //       Length of string: 2 (U+0061 U+0308)
    //
    //       Length of string: 1 (U+00E4)
    
    Module Example3
        Public Sub Main()
            Dim combining As String = ChrW(&H61) + ChrW(&H308)
            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)
    

Распространенные операции

Структура Char предоставляет методы для сравнения Char объектов, преобразуйте значение текущего Char объекта в объект другого типа и определите категорию Юникода Char объекта:

Действие Используйте эти System.Char методы
Сравнение Char объектов CompareTo и Equals.
Преобразование точки кода в строку ConvertFromUtf32

Посмотрите также тип Rune.
Char Преобразование объекта или суррогатной пары Char объектов в кодовую точку Для одного символа: Convert.ToInt32(Char)

Для суррогатной пары или символа в строке: Char.ConvertToUtf32

Посмотрите также тип Rune.
Получение категории Юникода символа GetUnicodeCategory

См. также Rune.GetUnicodeCategory.
Определение того, находится ли символ в определенной категории Юникода, например цифры, буквы, знак препинания, символ управления и т. д. IsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpper, IsWhiteSpace

См. также соответствующие методы для Rune типа.
Char Преобразование объекта, представляющего число в числовой тип значения GetNumericValue

См. также Rune.GetNumericValue.
Преобразуйте символ в строке в объект Char Parse и TryParse.
Char Преобразование объекта в String объект ToString
Измените регистр Char объекта ToLower, ToLowerInvariant, ToUpper и ToUpperInvariant

См. также соответствующие методы для Rune типа.

Значения char и взаимодействие с другими системами

Если управляемый Char тип, представленный как кодовая единица Юникод UTF-16, передается в неуправляемый код, маршализатор взаимодействия по умолчанию преобразует набор символов в ANSI. Вы можете применить атрибут DllImportAttribute к объявлениям вызова платформы и атрибут StructLayoutAttribute к объявлению взаимодействия COM, чтобы контролировать, какой набор символов использует маршализированный тип Char.

Поля

Имя Описание
MaxValue

Представляет наибольшее возможное значение Charобъекта. Это поле является константой.

MinValue

Представляет наименьшее возможное значение Char. Это поле является константой.

Методы

Имя Описание
CompareTo(Char)

Сравнивает этот экземпляр с указанным Char объектом и указывает, предшествует ли этот экземпляр, следует или отображается в той же позиции в порядке сортировки, что и указанный Char объект.

CompareTo(Object)

Сравнивает этот экземпляр с указанным объектом и указывает, предшествует ли этот экземпляр, следует или отображается в той же позиции в порядке сортировки, что и указанный Object.

ConvertFromUtf32(Int32)

Преобразует указанную точку кода Юникода в строку в кодировке UTF-16.

ConvertToUtf32(Char, Char)

Преобразует значение суррогатной пары UTF-16 в точку кода Юникода.

ConvertToUtf32(String, Int32)

Преобразует значение символа в кодировке UTF-16 или суррогатную пару в указанной позиции в строке в точку кода Юникода.

Equals(Char, StringComparison)

Представляет символ в виде единицы кода UTF-16.

Equals(Char)

Возвращает значение, указывающее, равен ли этот экземпляр указанному Char объекту.

Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

GetHashCode()

Возвращает хэш-код для этого экземпляра.

GetNumericValue(Char)

Преобразует указанный числовый символ Юникода в число с плавающей запятой двойной точности.

GetNumericValue(String, Int32)

Преобразует числовый символ Юникода в указанной позиции в указанной строке в число с плавающей запятой двойной точности.

GetTypeCode()

TypeCode Возвращает тип Charзначения.

GetUnicodeCategory(Char)

Классифицирует указанный символ Юникода в группу, определяемую одним из значений UnicodeCategory .

GetUnicodeCategory(String, Int32)

Классифицирует символ по указанной позиции в указанной строке в группу, определяемую одним из значений UnicodeCategory .

IsAscii(Char)

Возвращает, true если c это символ ASCII ([ U+0000..U+007F ]).

IsAsciiDigit(Char)

Указывает, классифицируется ли символ как цифра ASCII.

IsAsciiHexDigit(Char)

Указывает, классифицируется ли символ как шестнадцатеричная цифра ASCII.

IsAsciiHexDigitLower(Char)

Указывает, классифицируется ли символ как шестнадцатеричная шестнадцатеричная цифра ASCII.

IsAsciiHexDigitUpper(Char)

Указывает, классифицируется ли символ как шестнадцатеричная шестнадцатеричная цифра ASCII.

IsAsciiLetter(Char)

Указывает, классифицируется ли символ как буква ASCII.

IsAsciiLetterLower(Char)

Указывает, классифицируется ли символ как строчная буква ASCII.

IsAsciiLetterOrDigit(Char)

Указывает, классифицируется ли символ как буква ИЛИ цифра ASCII.

IsAsciiLetterUpper(Char)

Указывает, классифицируется ли символ как буква ASCII верхнего регистра.

IsBetween(Char, Char, Char)

Указывает, находится ли символ в указанном инклюзивном диапазоне.

IsControl(Char)

Указывает, классифицируется ли указанный символ Юникода как символ элемента управления.

IsControl(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как символ элемента управления.

IsDigit(Char)

Указывает, классифицируется ли указанный символ Юникода как десятичная цифра.

IsDigit(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как десятичная цифра.

IsHighSurrogate(Char)

Указывает, является ли указанный Char объект высоким суррогатным.

IsHighSurrogate(String, Int32)

Указывает, является ли Char объект в указанной позиции в строке высоким суррогатом.

IsLetter(Char)

Указывает, классифицируется ли указанный символ Юникода как буква Юникода.

IsLetter(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как буква Юникода.

IsLetterOrDigit(Char)

Указывает, классифицируется ли указанный символ Юникода как буква или десятичная цифра.

IsLetterOrDigit(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как буква или десятичная цифра.

IsLower(Char)

Указывает, является ли указанный символ Юникода строчным буквой.

IsLower(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как строчная буква.

IsLowSurrogate(Char)

Указывает, является ли указанный Char объект низким суррогатным.

IsLowSurrogate(String, Int32)

Указывает, является ли Char объект в указанной позиции в строке низкой суррогатной.

IsNumber(Char)

Указывает, классифицируется ли указанный символ Юникода как число.

IsNumber(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как число.

IsPunctuation(Char)

Указывает, классифицируется ли указанный символ Юникода как знак препинания.

IsPunctuation(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как знак препинания.

IsSeparator(Char)

Указывает, классифицируется ли указанный символ Юникода как символ разделителя.

IsSeparator(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как символ разделителя.

IsSurrogate(Char)

Указывает, имеет ли указанный символ суррогатную единицу кода.

IsSurrogate(String, Int32)

Указывает, имеет ли символ указанной позиции в указанной строке суррогатную единицу кода.

IsSurrogatePair(Char, Char)

Указывает, образуют ли две указанные Char объекты суррогатную пару.

IsSurrogatePair(String, Int32)

Указывает, находятся ли два смежных Char объекта в указанной позиции в строковой форме суррогатной пары.

IsSymbol(Char)

Указывает, классифицируется ли указанный символ Юникода как символ.

IsSymbol(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как символ.

IsUpper(Char)

Указывает, классифицируется ли указанный символ Юникода как прописная буква.

IsUpper(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как прописная буква.

IsWhiteSpace(Char)

Указывает, классифицируется ли указанный символ Юникода как пробел.

IsWhiteSpace(String, Int32)

Указывает, классифицируется ли символ в указанной позиции в указанной строке как пробел.

Parse(String)

Преобразует значение указанной строки в эквивалентный символ Юникода.

ToLower(Char, CultureInfo)

Преобразует значение указанного символа Юникода в его нижний регистр, используя указанные сведения о форматировании, зависящие от языка и региональных параметров.

ToLower(Char)

Преобразует значение символа Юникода в его нижний регистр.

ToLowerInvariant(Char)

Преобразует значение символа Юникода в его нижний регистр, используя правила регистра инвариантного языка и региональных параметров.

ToString()

Преобразует значение этого экземпляра в эквивалентное строковое представление.

ToString(Char)

Преобразует указанный символ Юникода в соответствующее строковое представление.

ToString(IFormatProvider)

Преобразует значение этого экземпляра в эквивалентное строковое представление, используя указанные сведения о формате, зависящее от языка и региональных параметров.

ToUpper(Char, CultureInfo)

Преобразует значение указанного символа Юникода в его верхний регистр, используя указанные сведения о форматировании, зависящие от языка и региональных параметров.

ToUpper(Char)

Преобразует значение символа Юникода в его эквивалент в верхнем регистре.

ToUpperInvariant(Char)

Преобразует значение символа Юникода в его верхний регистр с помощью правил регистра инвариантного языка и региональных параметров.

TryParse(String, Char)

Преобразует значение указанной строки в эквивалентный символ Юникода. Возвращаемый код указывает, выполнено ли преобразование успешно или завершилось сбоем.

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

Имя Описание
IAdditionOperators<Char,Char,Char>.Addition(Char, Char)

Добавляет два значения вместе для вычисления суммы.

IAdditionOperators<Char,Char,Char>.CheckedAddition(Char, Char)

Добавляет два значения вместе для вычисления суммы.

IAdditiveIdentity<Char,Char>.AdditiveIdentity

Возвращает аддитивное удостоверение текущего типа.

IBinaryInteger<Char>.GetByteCount()

Возвращает количество байтов, которые будут записываться в составе TryWriteLittleEndian(Span<Byte>, Int32).

IBinaryInteger<Char>.GetShortestBitLength()

Возвращает длину (в битах) в кратчайшем представлении текущего значения.

IBinaryInteger<Char>.LeadingZeroCount(Char)

Вычисляет число начальных нулевых битов в значении.

IBinaryInteger<Char>.Log10(Char)

Представляет символ в виде единицы кода UTF-16.

IBinaryInteger<Char>.PopCount(Char)

Вычисляет количество битов, заданных в значении.

IBinaryInteger<Char>.RotateLeft(Char, Int32)

Поворот значения влево на заданное значение.

IBinaryInteger<Char>.RotateRight(Char, Int32)

Поворот значения вправо по заданному количеству.

IBinaryInteger<Char>.TrailingZeroCount(Char)

Вычисляет число конечных нулевых битов в значении.

IBinaryInteger<Char>.TryReadBigEndian(ReadOnlySpan<Byte>, Boolean, Char)

Представляет символ в виде единицы кода UTF-16.

IBinaryInteger<Char>.TryReadLittleEndian(ReadOnlySpan<Byte>, Boolean, Char)

Представляет символ в виде единицы кода UTF-16.

IBinaryInteger<Char>.TryWriteBigEndian(Span<Byte>, Int32)

Пытается записать текущее значение в формате big-endian в заданный диапазон.

IBinaryInteger<Char>.TryWriteLittleEndian(Span<Byte>, Int32)

Пытается написать текущее значение в маленьком формате в заданном диапазоне.

IBinaryNumber<Char>.AllBitsSet

Возвращает экземпляр двоичного типа, в котором заданы все биты.

IBinaryNumber<Char>.IsPow2(Char)

Определяет, является ли значение двумя.

IBinaryNumber<Char>.Log2(Char)

Вычисляет журнал 2 значения.

IBitwiseOperators<Char,Char,Char>.BitwiseAnd(Char, Char)

Вычисляет битовое и два значения.

IBitwiseOperators<Char,Char,Char>.BitwiseOr(Char, Char)

Вычисляет битовое или два значения.

IBitwiseOperators<Char,Char,Char>.ExclusiveOr(Char, Char)

Вычисляет монопольные или два значения.

IBitwiseOperators<Char,Char,Char>.OnesComplement(Char)

Вычисляет представление заданного значения с дополнением.

IComparable.CompareTo(Object)

Сравнивает текущий экземпляр с другим объектом того же типа и возвращает целое число, указывающее, следует ли текущий экземпляр или находится в той же позиции в порядке сортировки, что и другой объект.

IComparisonOperators<Char,Char,Boolean>.GreaterThan(Char, Char)

Сравнивает два значения, чтобы определить, какой из них больше.

IComparisonOperators<Char,Char,Boolean>.GreaterThanOrEqual(Char, Char)

Сравнивает два значения, чтобы определить, какое значение больше или равно.

IComparisonOperators<Char,Char,Boolean>.LessThan(Char, Char)

Сравнивает два значения, чтобы определить, что меньше.

IComparisonOperators<Char,Char,Boolean>.LessThanOrEqual(Char, Char)

Сравнивает два значения, чтобы определить, что меньше или равно.

IConvertible.GetTypeCode()

Возвращает экземпляр для этого экземпляра TypeCode .

IConvertible.ToBoolean(IFormatProvider)

Примечание Это преобразование не поддерживается. Попытка сделать это приводит к InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Описание этого элемента см. в разделе ToByte(IFormatProvider).

IConvertible.ToChar(IFormatProvider)

Описание этого элемента см. в разделе ToChar(IFormatProvider).

IConvertible.ToDateTime(IFormatProvider)

Примечание Это преобразование не поддерживается. Попытка сделать это приводит к InvalidCastException.

IConvertible.ToDecimal(IFormatProvider)

Примечание Это преобразование не поддерживается. Попытка сделать это приводит к InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Примечание Это преобразование не поддерживается. Попытка сделать это приводит к InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Описание этого элемента см. в разделе ToInt16(IFormatProvider).

IConvertible.ToInt32(IFormatProvider)

Описание этого элемента см. в разделе ToInt32(IFormatProvider).

IConvertible.ToInt64(IFormatProvider)

Описание этого элемента см. в разделе ToInt64(IFormatProvider).

IConvertible.ToSByte(IFormatProvider)

Описание этого элемента см. в разделе ToSByte(IFormatProvider).

IConvertible.ToSingle(IFormatProvider)

Примечание Это преобразование не поддерживается. Попытка сделать это приводит к InvalidCastException.

IConvertible.ToString(IFormatProvider)

Преобразует значение этого экземпляра в эквивалентную строку, используя указанные сведения о форматировании, зависящие от языка и региональных параметров.

IConvertible.ToType(Type, IFormatProvider)

Описание этого элемента см. в разделе ToType(Type, IFormatProvider).

IConvertible.ToUInt16(IFormatProvider)

Описание этого элемента см. в разделе ToUInt16(IFormatProvider).

IConvertible.ToUInt32(IFormatProvider)

Описание этого элемента см. в разделе ToUInt32(IFormatProvider).

IConvertible.ToUInt64(IFormatProvider)

Описание этого элемента см. в разделе ToUInt64(IFormatProvider).

IDecrementOperators<Char>.CheckedDecrement(Char)

Уменьшает значение.

IDecrementOperators<Char>.Decrement(Char)

Уменьшает значение.

IDivisionOperators<Char,Char,Char>.Division(Char, Char)

Делит одно значение на другое, чтобы вычислить их кворот.

IEqualityOperators<Char,Char,Boolean>.Equality(Char, Char)

Сравнивает два значения для определения равенства.

IEqualityOperators<Char,Char,Boolean>.Inequality(Char, Char)

Сравнивает два значения для определения неравенства.

IFormattable.ToString(String, IFormatProvider)

Форматирует значение текущего экземпляра с помощью указанного формата.

IIncrementOperators<Char>.CheckedIncrement(Char)

Увеличивает значение.

IIncrementOperators<Char>.Increment(Char)

Увеличивает значение.

IMinMaxValue<Char>.MaxValue

Возвращает максимальное значение текущего типа.

IMinMaxValue<Char>.MinValue

Возвращает минимальное значение текущего типа.

IModulusOperators<Char,Char,Char>.Modulus(Char, Char)

Делит два значения вместе, чтобы вычислить их модулу или оставшуюся часть.

IMultiplicativeIdentity<Char,Char>.MultiplicativeIdentity

Возвращает умножающее удостоверение текущего типа.

IMultiplyOperators<Char,Char,Char>.CheckedMultiply(Char, Char)

Умножает два значения вместе, чтобы вычислить свой продукт.

IMultiplyOperators<Char,Char,Char>.Multiply(Char, Char)

Умножает два значения вместе, чтобы вычислить свой продукт.

INumberBase<Char>.Abs(Char)

Вычисляет абсолютное значение.

INumberBase<Char>.IsCanonical(Char)

Определяет, находится ли значение в его каноническом представлении.

INumberBase<Char>.IsComplexNumber(Char)

Определяет, представляет ли значение сложное число.

INumberBase<Char>.IsEvenInteger(Char)

Определяет, представляет ли значение даже целочисленное число.

INumberBase<Char>.IsFinite(Char)

Определяет, является ли значение конечным.

INumberBase<Char>.IsImaginaryNumber(Char)

Определяет, представляет ли значение чистое мнимое число.

INumberBase<Char>.IsInfinity(Char)

Определяет, является ли значение бесконечным.

INumberBase<Char>.IsInteger(Char)

Определяет, представляет ли значение целочисленное число.

INumberBase<Char>.IsNaN(Char)

Определяет, является ли значение naN.

INumberBase<Char>.IsNegative(Char)

Определяет, является ли значение отрицательным.

INumberBase<Char>.IsNegativeInfinity(Char)

Определяет, является ли значение отрицательным бесконечностью.

INumberBase<Char>.IsNormal(Char)

Определяет, является ли значение нормальным.

INumberBase<Char>.IsOddInteger(Char)

Определяет, представляет ли значение нечетное целочисленное число.

INumberBase<Char>.IsPositive(Char)

Определяет, является ли значение положительным.

INumberBase<Char>.IsPositiveInfinity(Char)

Определяет, является ли значение положительным бесконечностью.

INumberBase<Char>.IsRealNumber(Char)

Определяет, представляет ли значение реальное число.

INumberBase<Char>.IsSubnormal(Char)

Определяет, является ли значение ненормальным.

INumberBase<Char>.IsZero(Char)

Определяет, равно ли значение нулю.

INumberBase<Char>.MaxMagnitude(Char, Char)

Сравнивает два значения с вычислениями, которые больше.

INumberBase<Char>.MaxMagnitudeNumber(Char, Char)

Сравнивает два значения с вычислениями, которые имеют большую величину и возвращают другое значение, если входные данные.NaN

INumberBase<Char>.MinMagnitude(Char, Char)

Сравнивает два значения с вычислениями, которые меньше.

INumberBase<Char>.MinMagnitudeNumber(Char, Char)

Сравнивает два значения с вычислениями, которые имеют меньшую величину и возвращают другое значение, если входные данные.NaN

INumberBase<Char>.MultiplyAddEstimate(Char, Char, Char)

Вычисляет оценку (left * right) + . addend

INumberBase<Char>.One

Возвращает значение 1 типа.

INumberBase<Char>.Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Анализирует диапазон символов в значение.

INumberBase<Char>.Parse(String, NumberStyles, IFormatProvider)

Анализирует строку в значение.

INumberBase<Char>.Radix

Возвращает радикс или базу для типа.

INumberBase<Char>.TryConvertFromChecked<TOther>(TOther, Char)

Представляет символ в виде единицы кода UTF-16.

INumberBase<Char>.TryConvertFromSaturating<TOther>(TOther, Char)

Представляет символ в виде единицы кода UTF-16.

INumberBase<Char>.TryConvertFromTruncating<TOther>(TOther, Char)

Представляет символ в виде единицы кода UTF-16.

INumberBase<Char>.TryConvertToChecked<TOther>(Char, TOther)

Пытается преобразовать экземпляр текущего типа в другой тип, вызывая исключение переполнения для любых значений, которые выходят за пределы представляющего диапазона текущего типа.

INumberBase<Char>.TryConvertToSaturating<TOther>(Char, TOther)

Пытается преобразовать экземпляр текущего типа в другой тип, насыщая все значения, которые выходят за пределы представляющего диапазона текущего типа.

INumberBase<Char>.TryConvertToTruncating<TOther>(Char, TOther)

Пытается преобразовать экземпляр текущего типа в другой тип, усечение любых значений, которые выходят за пределы представляющего диапазона текущего типа.

INumberBase<Char>.TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Char)

Представляет символ в виде единицы кода UTF-16.

INumberBase<Char>.TryParse(String, NumberStyles, IFormatProvider, Char)

Представляет символ в виде единицы кода UTF-16.

INumberBase<Char>.Zero

Возвращает значение 0 типа.

IParsable<Char>.Parse(String, IFormatProvider)

Анализирует строку в значение.

IParsable<Char>.TryParse(String, IFormatProvider, Char)

Представляет символ в виде единицы кода UTF-16.

IShiftOperators<Char,Int32,Char>.LeftShift(Char, Int32)

Сдвигает значение влево по заданной сумме.

IShiftOperators<Char,Int32,Char>.RightShift(Char, Int32)

Сдвигает значение вправо по заданной сумме.

IShiftOperators<Char,Int32,Char>.UnsignedRightShift(Char, Int32)

Сдвигает значение вправо по заданной сумме.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Пытается отформатировать значение текущего экземпляра в предоставленный диапазон символов.

ISpanParsable<Char>.Parse(ReadOnlySpan<Char>, IFormatProvider)

Анализирует диапазон символов в значение.

ISpanParsable<Char>.TryParse(ReadOnlySpan<Char>, IFormatProvider, Char)

Представляет символ в виде единицы кода UTF-16.

ISubtractionOperators<Char,Char,Char>.CheckedSubtraction(Char, Char)

Вычитает два значения, чтобы вычислить их разницу.

ISubtractionOperators<Char,Char,Char>.Subtraction(Char, Char)

Вычитает два значения, чтобы вычислить их разницу.

IUnaryNegationOperators<Char,Char>.CheckedUnaryNegation(Char)

Вычисляет проверенное унарное отрицание значения.

IUnaryNegationOperators<Char,Char>.UnaryNegation(Char)

Вычисляет унарное отрицание значения.

IUnaryPlusOperators<Char,Char>.UnaryPlus(Char)

Вычисляет унарный плюс значения.

IUtf8SpanFormattable.TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Пытается отформатировать значение текущего экземпляра как UTF-8 в предоставленный диапазон байтов.

IUtf8SpanParsable<Char>.Parse(ReadOnlySpan<Byte>, IFormatProvider)

Представляет символ в виде единицы кода UTF-16.

IUtf8SpanParsable<Char>.TryParse(ReadOnlySpan<Byte>, IFormatProvider, Char)

Представляет символ в виде единицы кода UTF-16.

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

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

Все члены этого типа являются потокобезопасны. Элементы, которые, как представляется, изменяют состояние экземпляра, фактически возвращают новый экземпляр, инициализированный с новым значением. Как и в случае с любым другим типом, чтение и запись в общую переменную, которая содержит экземпляр этого типа, должна быть защищена блокировкой, чтобы гарантировать безопасность потока.

См. также раздел