Char Estrutura

Definição

Representa um caractere como uma unidade de código 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)
Herança
Atributos
Implementações
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>

Exemplos

O exemplo de código a seguir demonstra alguns dos métodos em 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

Comentários

A estrutura Char representa pontos de código Unicode usando a codificação UTF-16. O valor de um objeto Char é seu valor numérico (ordinal) de 16 bits.

Se você não estiver familiarizado com Unicode, valores escalares, pontos de código, pares alternativos, UTF-16 e o tipo Rune, consulte Introdução à codificação de caracteres no .NET.

Este artigo examina a relação entre um objeto Char e um caractere e discute algumas tarefas comuns executadas com Char instâncias. Recomendamos que você considere o tipo de Rune, introduzido no .NET Core 3.0, como uma alternativa para Char para executar algumas dessas tarefas.

Objetos Char, caracteres Unicode e cadeias de caracteres

Um objeto String é uma coleção sequencial de estruturas Char que representa uma cadeia de caracteres de texto. A maioria dos caracteres Unicode pode ser representada por um único objeto Char, mas um caractere codificado como um caractere base, par substituto e/ou combinação de sequência de caracteres é representado por vários objetos Char. Por esse motivo, uma estrutura Char em um objeto String não é necessariamente equivalente a um único caractere Unicode.

Várias unidades de código de 16 bits são usadas para representar caracteres Unicode únicos nos seguintes casos:

  • Glifos, que podem consistir em um único caractere ou de um caractere base seguido por um ou mais caracteres de combinação. Por exemplo, o caractere ä é representado por um objeto Char cuja unidade de código é U+0061 seguida por um objeto Char cuja unidade de código é U+0308. (O caractere ä também pode ser definido por um único objeto Char que tem uma unidade de código de U+00E4.) O exemplo a seguir ilustra que o caractere ä consiste em dois objetos 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:
    '       ä
    
  • Caracteres fora do Plano Multilíngue Básico Unicode (BMP). O Unicode dá suporte a dezesseis planos além do BMP, que representa o plano 0. Um ponto de código Unicode é representado em UTF-32 por um valor de 21 bits que inclui o plano. Por exemplo, U+1D160 representa o caractere MUSICAL SYMBOL EIGHT NOTE. Como a codificação UTF-16 tem apenas 16 bits, os caracteres fora do BMP são representados por pares alternativos em UTF-16. O exemplo a seguir ilustra que o equivalente UTF-32 de U+1D160, o caractere DE REFERÊNCIA DE SÍMBOLO MUSICAL OITAVO, é U+D834 U+DD60. U+D834 é o substituto superior; os substitutos altos variam de U+D800 a U+DBFF. U+DD60 é o substituto baixo; os substitutos baixos variam de U+DC00 a 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
    

Caracteres e categorias de caracteres

Cada caractere Unicode ou par alternativo válido pertence a uma categoria Unicode. No .NET, as categorias Unicode são representadas por membros da enumeração UnicodeCategory e incluem valores como UnicodeCategory.CurrencySymbol, UnicodeCategory.LowercaseLettere UnicodeCategory.SpaceSeparator, por exemplo.

Para determinar a categoria Unicode de um caractere, chame o método GetUnicodeCategory. Por exemplo, o exemplo a seguir chama o GetUnicodeCategory para exibir a categoria Unicode de cada caractere em uma cadeia de caracteres. O exemplo funciona corretamente somente se não houver pares alternativos na instância 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

Internamente, para caracteres fora do intervalo ASCII (U+0000 a U+00FF), o método GetUnicodeCategory depende das categorias Unicode relatadas pela classe CharUnicodeInfo. Os caracteres Unicode são classificados com base no Padrão Unicode, versão 8.0.0.

Caracteres e elementos de texto

Como um único caractere pode ser representado por vários objetos Char, nem sempre é significativo trabalhar com objetos Char individuais. Por exemplo, o exemplo a seguir converte os pontos de código Unicode que representam os números Egeu zero a 9 em unidades de código codificadas utf-16. Como ele se equivoca ao igualar objetos Char a caracteres, informa incorretamente que a string resultante tem 20 caracteres.

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.

Você pode fazer o seguinte para evitar a suposição de que um objeto Char representa um único caractere:

  • Você pode trabalhar com um objeto String em sua totalidade em vez de trabalhar com seus caracteres individuais para representar e analisar o conteúdo linguístico.

  • Você pode usar String.EnumerateRunes conforme mostrado no exemplo a seguir:

    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
    
  • Você pode usar a classe StringInfo para trabalhar com elementos de texto em vez de objetos Char individuais. O exemplo a seguir usa o objeto StringInfo para contar o número de elementos de texto em uma cadeia de caracteres que consiste nos números Egeu zero a nove. Como ele considera um par alternativo um único caractere, ele relata corretamente que a cadeia de caracteres contém dez caracteres.

    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.
    
  • Se uma cadeia de caracteres contiver um caractere base que tenha um ou mais caracteres de combinação, você poderá chamar o método String.Normalize para converter a subcadeia de caracteres em uma única unidade de código codificada UTF-16. O exemplo a seguir chama o método String.Normalize para converter o caractere base U+0061 (LATIN SMALL LETTER A) e o caractere de combinação U+0308 (COMBINING DIAERESIS) para U+00E4 (LATIN SMALL LETTER A WITH 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)
    

Operações comuns

A estrutura Char fornece métodos para comparar objetos Char, converter o valor do objeto Char atual em um objeto de outro tipo e determinar a categoria Unicode de um objeto Char:

Para fazer isso Use esses métodos de System.Char
Comparar objetos Char CompareTo e Equals
Converter um ponto de código em uma cadeia de caracteres ConvertFromUtf32

Consulte também o tipo Rune.
Converter um objeto Char ou um par alternativo de objetos Char em um ponto de código Para um único caractere: Convert.ToInt32(Char)

Para um par substituto ou um caractere em uma cadeia de caracteres: Char.ConvertToUtf32

Consulte também o tipo Rune.
Obter a categoria Unicode de um caractere GetUnicodeCategory

Consulte também Rune.GetUnicodeCategory.
Determinar se um caractere está em uma categoria Unicode específica, como dígito, letra, pontuação, caractere de controle e assim por diante IsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUppere IsWhiteSpace

Consulte também os métodos correspondentes do tipo Rune.
Converter um objeto Char que representa um número em um tipo de valor numérico GetNumericValue

Consulte também Rune.GetNumericValue.
Converter um caractere em uma cadeia de caracteres em um objeto Char Parse e TryParse
Converter um objeto Char em um objeto String ToString
Alterar o caso de um objeto Char ToLower, ToLowerInvariant, ToUppere ToUpperInvariant

Consulte também os métodos correspondentes do tipo Rune.

Valores de char e interoperabilidade

Quando um tipo Char gerenciado, que é representado como uma unidade de código codificada como Unicode UTF-16, é passado para código não gerenciado, o importador de interoperabilidade converte o conjunto de caracteres para ANSI por padrão. Você pode aplicar o atributo DllImportAttribute a declarações de invocação de plataforma e o atributo StructLayoutAttribute a uma declaração de interoperabilidade COM para controlar qual conjunto de caracteres um tipo marshaled Char usa.

Campos

Nome Description
MaxValue

Representa o maior valor possível de um Char. Esse campo é constante.

MinValue

Representa o menor valor possível de um Char. Esse campo é constante.

Métodos

Nome Description
CompareTo(Char)

Compara essa instância a um objeto especificado Char e indica se essa instância precede, segue ou aparece na mesma posição na ordem de classificação que o objeto especificado Char .

CompareTo(Object)

Compara essa instância a um objeto especificado e indica se essa instância precede, segue ou aparece na mesma posição na ordem de classificação que a especificada Object.

ConvertFromUtf32(Int32)

Converte o ponto de código Unicode especificado em uma cadeia de caracteres codificada em UTF-16.

ConvertToUtf32(Char, Char)

Converte o valor de um par alternativo codificado em UTF-16 em um ponto de código Unicode.

ConvertToUtf32(String, Int32)

Converte o valor de um caractere codificado utf-16 ou par alternativo em uma posição especificada em uma cadeia de caracteres em um ponto de código Unicode.

Equals(Char, StringComparison)

Representa um caractere como uma unidade de código UTF-16.

Equals(Char)

Retorna um valor que indica se essa instância é igual ao objeto especificado Char .

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

GetHashCode()

Retorna o código hash dessa instância.

GetNumericValue(Char)

Converte o caractere Unicode numérico especificado em um número de ponto flutuante de precisão dupla.

GetNumericValue(String, Int32)

Converte o caractere Unicode numérico na posição especificada em uma cadeia de caracteres especificada em um número de ponto flutuante de precisão dupla.

GetTypeCode()

Retorna o TypeCode tipo Charde valor for .

GetUnicodeCategory(Char)

Categoriza um caractere Unicode especificado em um grupo identificado por um dos UnicodeCategory valores.

GetUnicodeCategory(String, Int32)

Categoriza o caractere na posição especificada em uma cadeia de caracteres especificada em um grupo identificado por um dos UnicodeCategory valores.

IsAscii(Char)

Retorna true se c for um caractere ASCII ([ U+0000.U+007F ]).

IsAsciiDigit(Char)

Indica se um caractere é categorizado como um dígito ASCII.

IsAsciiHexDigit(Char)

Indica se um caractere é categorizado como um dígito hexadecimal ASCII.

IsAsciiHexDigitLower(Char)

Indica se um caractere é categorizado como um dígito hexadecimal de minúsculas ASCII.

IsAsciiHexDigitUpper(Char)

Indica se um caractere é categorizado como um dígito hexadecimal de maiúsculas ascii.

IsAsciiLetter(Char)

Indica se um caractere é categorizado como uma letra ASCII.

IsAsciiLetterLower(Char)

Indica se um caractere é categorizado como uma letra ASCII minúscula.

IsAsciiLetterOrDigit(Char)

Indica se um caractere é categorizado como uma letra ou dígito ASCII.

IsAsciiLetterUpper(Char)

Indica se um caractere é categorizado como uma letra ASCII maiúscula.

IsBetween(Char, Char, Char)

Indica se um caractere está dentro do intervalo inclusivo especificado.

IsControl(Char)

Indica se o caractere Unicode especificado é categorizado como um caractere de controle.

IsControl(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como um caractere de controle.

IsDigit(Char)

Indica se o caractere Unicode especificado é categorizado como um dígito decimal.

IsDigit(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como um dígito decimal.

IsHighSurrogate(Char)

Indica se o objeto especificado Char é um substituto alto.

IsHighSurrogate(String, Int32)

Indica se o Char objeto na posição especificada em uma cadeia de caracteres é um substituto alto.

IsLetter(Char)

Indica se o caractere Unicode especificado é categorizado como uma letra Unicode.

IsLetter(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como uma letra Unicode.

IsLetterOrDigit(Char)

Indica se o caractere Unicode especificado é categorizado como uma letra ou um dígito decimal.

IsLetterOrDigit(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como uma letra ou um dígito decimal.

IsLower(Char)

Indica se o caractere Unicode especificado é categorizado como uma letra minúscula.

IsLower(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como uma letra minúscula.

IsLowSurrogate(Char)

Indica se o objeto especificado Char é um substituto baixo.

IsLowSurrogate(String, Int32)

Indica se o Char objeto na posição especificada em uma cadeia de caracteres é um substituto baixo.

IsNumber(Char)

Indica se o caractere Unicode especificado é categorizado como um número.

IsNumber(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como um número.

IsPunctuation(Char)

Indica se o caractere Unicode especificado é categorizado como uma marca de pontuação.

IsPunctuation(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como uma marca de pontuação.

IsSeparator(Char)

Indica se o caractere Unicode especificado é categorizado como um caractere separador.

IsSeparator(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como um caractere separador.

IsSurrogate(Char)

Indica se o caractere especificado tem uma unidade de código alternativa.

IsSurrogate(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada tem uma unidade de código alternativa.

IsSurrogatePair(Char, Char)

Indica se os dois objetos especificados Char formam um par alternativo.

IsSurrogatePair(String, Int32)

Indica se dois objetos adjacentes Char em uma posição especificada em uma cadeia de caracteres formam um par alternativo.

IsSymbol(Char)

Indica se o caractere Unicode especificado é categorizado como um caractere de símbolo.

IsSymbol(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como um caractere de símbolo.

IsUpper(Char)

Indica se o caractere Unicode especificado é categorizado como uma letra maiúscula.

IsUpper(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como uma letra maiúscula.

IsWhiteSpace(Char)

Indica se o caractere Unicode especificado é categorizado como espaço em branco.

IsWhiteSpace(String, Int32)

Indica se o caractere na posição especificada em uma cadeia de caracteres especificada é categorizado como espaço em branco.

Parse(String)

Converte o valor da cadeia de caracteres especificada em seu caractere Unicode equivalente.

ToLower(Char, CultureInfo)

Converte o valor de um caractere Unicode especificado em seu equivalente minúsculo usando informações de formatação específicas da cultura especificadas.

ToLower(Char)

Converte o valor de um caractere Unicode em seu equivalente minúsculo.

ToLowerInvariant(Char)

Converte o valor de um caractere Unicode em seu equivalente minúsculo usando as regras de maiúsculas e minúsculas da cultura invariável.

ToString()

Converte o valor dessa instância em sua representação de cadeia de caracteres equivalente.

ToString(Char)

Converte o caractere Unicode especificado em sua representação de cadeia de caracteres equivalente.

ToString(IFormatProvider)

Converte o valor dessa instância em sua representação de cadeia de caracteres equivalente usando as informações de formato específicas da cultura especificadas.

ToUpper(Char, CultureInfo)

Converte o valor de um caractere Unicode especificado em seu equivalente maiúsculo usando informações de formatação específicas da cultura especificadas.

ToUpper(Char)

Converte o valor de um caractere Unicode em seu equivalente maiúsculo.

ToUpperInvariant(Char)

Converte o valor de um caractere Unicode em seu equivalente maiúsculo usando as regras de maiúsculas da cultura invariável.

TryParse(String, Char)

Converte o valor da cadeia de caracteres especificada em seu caractere Unicode equivalente. Um código de retorno indica se a conversão foi bem-sucedida ou falhou.

Implantações explícitas de interface

Nome Description
IAdditionOperators<Char,Char,Char>.Addition(Char, Char)

Adiciona dois valores juntos para calcular sua soma.

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

Adiciona dois valores juntos para calcular sua soma.

IAdditiveIdentity<Char,Char>.AdditiveIdentity

Obtém a identidade aditiva do tipo atual.

IBinaryInteger<Char>.GetByteCount()

Obtém o número de bytes que serão gravados como parte de TryWriteLittleEndian(Span<Byte>, Int32).

IBinaryInteger<Char>.GetShortestBitLength()

Obtém o comprimento, em bits, da representação complementar dos dois mais curtos do valor atual.

IBinaryInteger<Char>.LeadingZeroCount(Char)

Calcula o número de bits zero à esquerda em um valor.

IBinaryInteger<Char>.Log10(Char)

Representa um caractere como uma unidade de código UTF-16.

IBinaryInteger<Char>.PopCount(Char)

Calcula o número de bits definidos em um valor.

IBinaryInteger<Char>.RotateLeft(Char, Int32)

Gira um valor deixado por um determinado valor.

IBinaryInteger<Char>.RotateRight(Char, Int32)

Gira um valor à direita em um determinado valor.

IBinaryInteger<Char>.TrailingZeroCount(Char)

Calcula o número de bits zero à direita em um valor.

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

Representa um caractere como uma unidade de código UTF-16.

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

Representa um caractere como uma unidade de código UTF-16.

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

Tenta gravar o valor atual, no formato big-endian, em um determinado intervalo.

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

Tenta gravar o valor atual, no formato little-endian, em um determinado intervalo.

IBinaryNumber<Char>.AllBitsSet

Obtém uma instância do tipo binário na qual todos os bits são definidos.

IBinaryNumber<Char>.IsPow2(Char)

Determina se um valor é uma potência de dois.

IBinaryNumber<Char>.Log2(Char)

Calcula o log2 de um valor.

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

Calcula o bit a bit e dois valores.

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

Calcula o bit a bit ou de dois valores.

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

Calcula o exclusivo ou de dois valores.

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

Calcula a representação ones-complement de um determinado valor.

IComparable.CompareTo(Object)

Compara a instância atual com outro objeto do mesmo tipo e devolve um número inteiro que indica se a instância atual precede, segue ou ocorre na mesma posição na sequência de ordenação que o outro objeto.

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

Compara dois valores para determinar qual é maior.

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

Compara dois valores para determinar qual é maior ou igual.

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

Compara dois valores para determinar qual é menor.

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

Compara dois valores para determinar qual é menor ou igual.

IConvertible.GetTypeCode()

Retorna o TypeCode para esta instância.

IConvertible.ToBoolean(IFormatProvider)

Nota Não há suporte para essa conversão. Tentar fazer dessa forma lança um InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Para obter uma descrição deste membro, consulte ToByte(IFormatProvider).

IConvertible.ToChar(IFormatProvider)

Para obter uma descrição deste membro, consulte ToChar(IFormatProvider).

IConvertible.ToDateTime(IFormatProvider)

Nota Não há suporte para essa conversão. Tentar fazer dessa forma lança um InvalidCastException.

IConvertible.ToDecimal(IFormatProvider)

Nota Não há suporte para essa conversão. Tentar fazer dessa forma lança um InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Nota Não há suporte para essa conversão. Tentar fazer dessa forma lança um InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Para obter uma descrição deste membro, consulte ToInt16(IFormatProvider).

IConvertible.ToInt32(IFormatProvider)

Para obter uma descrição deste membro, consulte ToInt32(IFormatProvider).

IConvertible.ToInt64(IFormatProvider)

Para obter uma descrição deste membro, consulte ToInt64(IFormatProvider).

IConvertible.ToSByte(IFormatProvider)

Para obter uma descrição deste membro, consulte ToSByte(IFormatProvider).

IConvertible.ToSingle(IFormatProvider)

Nota Não há suporte para essa conversão. Tentar fazer dessa forma lança um InvalidCastException.

IConvertible.ToString(IFormatProvider)

Converte o valor dessa instância em uma cadeia de caracteres equivalente, usando as informações de formatação específicas da cultura especificadas.

IConvertible.ToType(Type, IFormatProvider)

Para obter uma descrição deste membro, consulte ToType(Type, IFormatProvider).

IConvertible.ToUInt16(IFormatProvider)

Para obter uma descrição deste membro, consulte ToUInt16(IFormatProvider).

IConvertible.ToUInt32(IFormatProvider)

Para obter uma descrição deste membro, consulte ToUInt32(IFormatProvider).

IConvertible.ToUInt64(IFormatProvider)

Para obter uma descrição deste membro, consulte ToUInt64(IFormatProvider).

IDecrementOperators<Char>.CheckedDecrement(Char)

Decrementa um valor.

IDecrementOperators<Char>.Decrement(Char)

Decrementa um valor.

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

Divide um valor por outro para calcular seu quociente.

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

Compara dois valores para determinar a igualdade.

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

Compara dois valores para determinar a desigualdade.

IFormattable.ToString(String, IFormatProvider)

Formata o valor da instância atual usando o formato especificado.

IIncrementOperators<Char>.CheckedIncrement(Char)

Incrementa um valor.

IIncrementOperators<Char>.Increment(Char)

Incrementa um valor.

IMinMaxValue<Char>.MaxValue

Obtém o valor máximo do tipo atual.

IMinMaxValue<Char>.MinValue

Obtém o valor mínimo do tipo atual.

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

Divide dois valores juntos para calcular seu módulo ou restante.

IMultiplicativeIdentity<Char,Char>.MultiplicativeIdentity

Obtém a identidade multiplicativa do tipo atual.

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

Multiplica dois valores juntos para calcular seu produto.

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

Multiplica dois valores juntos para calcular seu produto.

INumberBase<Char>.Abs(Char)

Calcula o absoluto de um valor.

INumberBase<Char>.IsCanonical(Char)

Determina se um valor está em sua representação canônica.

INumberBase<Char>.IsComplexNumber(Char)

Determina se um valor representa um número complexo.

INumberBase<Char>.IsEvenInteger(Char)

Determina se um valor representa um número integral par.

INumberBase<Char>.IsFinite(Char)

Determina se um valor é finito.

INumberBase<Char>.IsImaginaryNumber(Char)

Determina se um valor representa um número imaginário puro.

INumberBase<Char>.IsInfinity(Char)

Determina se um valor é infinito.

INumberBase<Char>.IsInteger(Char)

Determina se um valor representa um número integral.

INumberBase<Char>.IsNaN(Char)

Determina se um valor é NaN.

INumberBase<Char>.IsNegative(Char)

Determina se um valor é negativo.

INumberBase<Char>.IsNegativeInfinity(Char)

Determina se um valor é infinito negativo.

INumberBase<Char>.IsNormal(Char)

Determina se um valor é normal.

INumberBase<Char>.IsOddInteger(Char)

Determina se um valor representa um número integral ímpar.

INumberBase<Char>.IsPositive(Char)

Determina se um valor é positivo.

INumberBase<Char>.IsPositiveInfinity(Char)

Determina se um valor é infinito positivo.

INumberBase<Char>.IsRealNumber(Char)

Determina se um valor representa um número real.

INumberBase<Char>.IsSubnormal(Char)

Determina se um valor é subnormal.

INumberBase<Char>.IsZero(Char)

Determina se um valor é zero.

INumberBase<Char>.MaxMagnitude(Char, Char)

Compara dois valores com a computação que é maior.

INumberBase<Char>.MaxMagnitudeNumber(Char, Char)

Compara dois valores com a computação que tem maior magnitude e retorna o outro valor se uma entrada for NaN.

INumberBase<Char>.MinMagnitude(Char, Char)

Compara dois valores com a computação menor.

INumberBase<Char>.MinMagnitudeNumber(Char, Char)

Compara dois valores com a computação que tem a menor magnitude e retorna o outro valor se uma entrada for NaN.

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

Calcula uma estimativa de (left * right) + . addend

INumberBase<Char>.One

Obtém o valor 1 do tipo.

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

Analisa um intervalo de caracteres em um valor.

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

Analisa uma cadeia de caracteres em um valor.

INumberBase<Char>.Radix

Obtém a base para o tipo.

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

Representa um caractere como uma unidade de código UTF-16.

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

Representa um caractere como uma unidade de código UTF-16.

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

Representa um caractere como uma unidade de código UTF-16.

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

Tenta converter uma instância do tipo atual em outro tipo, gerando uma exceção de estouro para quaisquer valores que fiquem fora do intervalo representável do tipo atual.

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

Tenta converter uma instância do tipo atual em outro tipo, saturando todos os valores que estão fora do intervalo representável do tipo atual.

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

Tenta converter uma instância do tipo atual em outro tipo, truncando todos os valores que estejam fora do intervalo representável do tipo atual.

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

Representa um caractere como uma unidade de código UTF-16.

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

Representa um caractere como uma unidade de código UTF-16.

INumberBase<Char>.Zero

Obtém o valor 0 do tipo.

IParsable<Char>.Parse(String, IFormatProvider)

Analisa uma cadeia de caracteres em um valor.

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

Representa um caractere como uma unidade de código UTF-16.

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

Desloca um valor deixado por um determinado valor.

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

Desloca um valor para a direita por um determinado valor.

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

Desloca um valor para a direita por um determinado valor.

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

Tenta formatar o valor da instância atual no intervalo de caracteres fornecido.

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

Analisa um intervalo de caracteres em um valor.

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

Representa um caractere como uma unidade de código UTF-16.

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

Subtrai dois valores para calcular a diferença.

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

Subtrai dois valores para calcular a diferença.

IUnaryNegationOperators<Char,Char>.CheckedUnaryNegation(Char)

Calcula a negação unária verificada de um valor.

IUnaryNegationOperators<Char,Char>.UnaryNegation(Char)

Calcula a negação unária de um valor.

IUnaryPlusOperators<Char,Char>.UnaryPlus(Char)

Calcula a adição unária de um valor.

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

Tenta formatar o valor da instância atual como UTF-8 no intervalo de bytes fornecido.

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

Representa um caractere como uma unidade de código UTF-16.

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

Representa um caractere como uma unidade de código UTF-16.

Aplica-se a

Acesso thread-safe

Todos os membros desse tipo são thread safe. Os membros que parecem modificar o estado da instância retornam, na verdade, uma nova instância inicializada com o novo valor. Assim como acontece com qualquer outro tipo, a leitura e a gravação em uma variável compartilhada que contenha uma instância desse tipo devem ser protegidas por um bloqueio para garantir a segurança do thread.

Confira também