Char Estrutura

Definição

Representa um carácter 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 seguinte exemplo de código 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

Observações

A estrutura Char representa pontos de código Unicode usando 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 substitutos, 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 instâncias Char. Recomendamos que você considere o tipo Rune, introduzido no .NET Core 3.0, como uma alternativa ao 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 que é codificado como um caractere base, par substituto e/ou sequência de caracteres combinada é 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 em um caractere base seguido por um ou mais caracteres combinados. Por exemplo, o caractere ä é representado por um objeto Char cuja unidade de código é U+0061 seguido por um objeto Char cuja unidade de código é U+0308. (O caractere ä também pode ser definido por um único objeto Char que tenha uma unidade de código 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 Multilinguístico Básico do Unicode (BMP). O Unicode suporta 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 SÍMBOLO MUSICAL OITAVA NOTA. Como a codificação UTF-16 tem apenas 16 bits, os caracteres fora do BMP são representados por pares substitutos em UTF-16. O exemplo a seguir ilustra que o equivalente UTF-32 de U+1D160, o caractere MUSICAL SYMBOL EIGHTH NOTE, é U+D834 U+DD60. U+D834 é o alto substituto; 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
    

Personagens e categorias de personagens

Cada caractere Unicode ou par substituto 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 substitutos na String instância.

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 do mar Egeu de zero a 9 em unidades de código codificadas UTF-16. Como ele equipara erroneamente Char objetos com caracteres, ele relata incorretamente que a cadeia de caracteres 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 como 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 do mar Egeu de zero a nove. Como ele considera um par substituto um único caractere, ele informa 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 combinados, você poderá chamar o método String.Normalize para converter a subcadeia 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 combinar o caractere U+0308 (COMBINING DIAERESIS) em 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 isto Use os métodos 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 de Rune.
Converter um objeto Char ou um par substituto 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 de Rune.
Obter a categoria Unicode de um caractere GetUnicodeCategory

Ver também Rune.GetUnicodeCategory.
Determine 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

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

Ver 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 a maiúscula e minúscula de um objeto Char ToLower, ToLowerInvariant, ToUppere ToUpperInvariant

Veja também os métodos correspondentes no tipo Rune.

Valores de Char e interoperabilidade

Quando um tipo gerenciado Char, que é representado como uma unidade de código codificada em Unicode UTF-16, é passado para o código não gerenciado, o marshaller 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 de Char usa.

Campos

Name Descrição
MaxValue

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

MinValue

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

Métodos

Name Descrição
CompareTo(Char)

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

CompareTo(Object)

Compara esta instância com um objeto especificado e indica se esta instância precede, segue ou aparece na mesma posição na ordem de ordenação que o especificado Object.

ConvertFromUtf32(Int32)

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

ConvertToUtf32(Char, Char)

Converte o valor de um par de substitutos codificados em UTF-16 num ponto de código Unicode.

ConvertToUtf32(String, Int32)

Converte o valor de um par de caracteres codificados UTF-16 ou substitutos numa posição especificada numa string num ponto de código Unicode.

Equals(Char, StringComparison)

Representa um carácter como uma unidade de código UTF-16.

Equals(Char)

Devolve um valor que indica se esta instância é igual ao objeto especificado Char .

Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

GetHashCode()

Devolve o código de hash para esta instância.

GetNumericValue(Char)

Converte o carácter numérico Unicode especificado para um número de ponto flutuante de dupla precisão.

GetNumericValue(String, Int32)

Converte o carácter numérico Unicode na posição especificada numa cadeia específica para um número de ponto flutuante de dupla precisão.

GetTypeCode()

Devolve o TypeCode tipo Charde valor para .

GetUnicodeCategory(Char)

Categoriza um carácter Unicode especificado num grupo identificado por um dos UnicodeCategory valores.

GetUnicodeCategory(String, Int32)

Categoriza o carácter na posição especificada numa cadeia específica num grupo identificado por um dos UnicodeCategory valores.

IsAscii(Char)

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

IsAsciiDigit(Char)

Indica se um carácter é categorizado como um dígito ASCII.

IsAsciiHexDigit(Char)

Indica se um carácter é categorizado como um dígito hexadecimal ASCII.

IsAsciiHexDigitLower(Char)

Indica se um carácter é categorizado como um dígito hexadecimal minúsculo em ASCII.

IsAsciiHexDigitUpper(Char)

Indica se um carácter é categorizado como um dígito hexadecimal maiúsculo em maiúsculas ASCII.

IsAsciiLetter(Char)

Indica se um carácter é categorizado como uma letra ASCII.

IsAsciiLetterLower(Char)

Indica se um carácter está categorizado como letra ASCII minúscula.

IsAsciiLetterOrDigit(Char)

Indica se um carácter está categorizado como letra ou dígito ASCII.

IsAsciiLetterUpper(Char)

Indica se um carácter está categorizado como letra ASCII maiúscula.

IsBetween(Char, Char, Char)

Indica se um carácter está dentro do intervalo inclusivo especificado.

IsControl(Char)

Indica se o carácter Unicode especificado está categorizado como um carácter de controlo.

IsControl(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como carácter de controlo.

IsDigit(Char)

Indica se o carácter Unicode especificado está categorizado como um dígito decimal.

IsDigit(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é 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 numa corda é um substituto alto.

IsLetter(Char)

Indica se o carácter Unicode especificado está categorizado como uma letra Unicode.

IsLetter(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como uma letra Unicode.

IsLetterOrDigit(Char)

Indica se o carácter Unicode especificado está categorizado como letra ou dígito decimal.

IsLetterOrDigit(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica está categorizado como letra ou dígito decimal.

IsLower(Char)

Indica se o carácter Unicode especificado está categorizado como letra minúscula.

IsLower(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como 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 numa corda é um substituto baixo.

IsNumber(Char)

Indica se o carácter Unicode especificado está categorizado como um número.

IsNumber(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como um número.

IsPunctuation(Char)

Indica se o carácter Unicode especificado está categorizado como sinal de pontuação.

IsPunctuation(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como sinal de pontuação.

IsSeparator(Char)

Indica se o carácter Unicode especificado está categorizado como carácter separador.

IsSeparator(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como um carácter separador.

IsSurrogate(Char)

Indica se o carácter especificado possui uma unidade de código substituto.

IsSurrogate(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica tem uma unidade de código substituto.

IsSurrogatePair(Char, Char)

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

IsSurrogatePair(String, Int32)

Indica se dois objetos adjacentes Char numa posição especificada numa corda formam um par substituto.

IsSymbol(Char)

Indica se o carácter Unicode especificado é categorizado como símbolo de carácter.

IsSymbol(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como um carácter simbólico.

IsUpper(Char)

Indica se o carácter Unicode especificado está categorizado como letra maiúscula.

IsUpper(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como letra maiúscula.

IsWhiteSpace(Char)

Indica se o carácter Unicode especificado é categorizado como espaço em branco.

IsWhiteSpace(String, Int32)

Indica se o carácter na posição especificada numa cadeia específica é categorizado como espaço em branco.

Parse(String)

Converte o valor da cadeia especificada para o seu carácter Unicode equivalente.

ToLower(Char, CultureInfo)

Converte o valor de um carácter Unicode especificado para o seu equivalente minúsculo usando informação de formatação específica para cultura.

ToLower(Char)

Converte o valor de um carácter Unicode para o seu equivalente minúsculo.

ToLowerInvariant(Char)

Converte o valor de um carácter Unicode para o seu equivalente minúsculo usando as regras de maiúscula da cultura invariante.

ToString()

Converte o valor desta instância para a sua representação equivalente da cadeia.

ToString(Char)

Converte o carácter Unicode especificado para a sua representação equivalente em cadeias.

ToString(IFormatProvider)

Converte o valor desta instância para a sua representação equivalente de cadeias usando a informação de formato específica para cultura.

ToUpper(Char, CultureInfo)

Converte o valor de um carácter Unicode especificado para o seu equivalente maiúsculo usando informação de formatação específica para cultura.

ToUpper(Char)

Converte o valor de um carácter Unicode para o seu equivalente maiúsculo.

ToUpperInvariant(Char)

Converte o valor de um carácter Unicode para o seu equivalente maiúsculo usando as regras de maiúscula da cultura invariante.

TryParse(String, Char)

Converte o valor da cadeia especificada para o seu carácter Unicode equivalente. Um código de retorno indica se a conversão teve sucesso ou falhou.

Implementações de Interface Explícita

Name Descrição
IAdditionOperators<Char,Char,Char>.Addition(Char, Char)

Soma dois valores para calcular a sua soma.

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

Soma dois valores para calcular a 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 escritos como parte de TryWriteLittleEndian(Span<Byte>, Int32).

IBinaryInteger<Char>.GetShortestBitLength()

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

IBinaryInteger<Char>.LeadingZeroCount(Char)

Calcula o número de bits zeros iniciais num valor.

IBinaryInteger<Char>.Log10(Char)

Representa um carácter como uma unidade de código UTF-16.

IBinaryInteger<Char>.PopCount(Char)

Calcula o número de bits que estão definidos num valor.

IBinaryInteger<Char>.RotateLeft(Char, Int32)

Roda um valor deixado por uma determinada quantia.

IBinaryInteger<Char>.RotateRight(Char, Int32)

Roda um valor exatamente por uma determinada quantia.

IBinaryInteger<Char>.TrailingZeroCount(Char)

Calcula o número de bits zero finais num valor.

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

Representa um carácter como uma unidade de código UTF-16.

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

Representa um carácter como uma unidade de código UTF-16.

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

Tenta escrever o valor atual, em formato big-endian, para um determinado intervalo.

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

Tenta escrever o valor atual, em formato little-endian, num determinado intervalo.

IBinaryNumber<Char>.AllBitsSet

Obtém uma instância do tipo binário em que todos os bits estã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 de dois valores.

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

Calcula o bit-or-ou de dois valores.

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

Calcula o ou exclusivo de dois valores.

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

Calcula a representação de um complemento de um dado valor.

IComparable.CompareTo(Object)

Compara a instância atual com outro objeto do mesmo tipo e devolve um inteiro que indica se a instância atual precede, segue ou ocorre na mesma posição na ordem 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()

Devolve o TypeCode para este caso.

IConvertible.ToBoolean(IFormatProvider)

Nota Esta conversão não é suportada. Ao tentar fazê-lo, é gerado um InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Para uma descrição deste elemento, veja ToByte(IFormatProvider).

IConvertible.ToChar(IFormatProvider)

Para uma descrição deste elemento, veja ToChar(IFormatProvider).

IConvertible.ToDateTime(IFormatProvider)

Nota Esta conversão não é suportada. Ao tentar fazê-lo, é gerado um InvalidCastException.

IConvertible.ToDecimal(IFormatProvider)

Nota Esta conversão não é suportada. Ao tentar fazê-lo, é gerado um InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Nota Esta conversão não é suportada. Ao tentar fazê-lo, é gerado um InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Para uma descrição deste elemento, veja ToInt16(IFormatProvider).

IConvertible.ToInt32(IFormatProvider)

Para uma descrição deste elemento, veja ToInt32(IFormatProvider).

IConvertible.ToInt64(IFormatProvider)

Para uma descrição deste elemento, veja ToInt64(IFormatProvider).

IConvertible.ToSByte(IFormatProvider)

Para uma descrição deste elemento, veja ToSByte(IFormatProvider).

IConvertible.ToSingle(IFormatProvider)

Nota Esta conversão não é suportada. Ao tentar fazê-lo, é gerado um InvalidCastException.

IConvertible.ToString(IFormatProvider)

Converte o valor desta instância para uma cadeia equivalente, usando a informação de formatação específica para cultura.

IConvertible.ToType(Type, IFormatProvider)

Para uma descrição deste elemento, veja ToType(Type, IFormatProvider).

IConvertible.ToUInt16(IFormatProvider)

Para uma descrição deste elemento, veja ToUInt16(IFormatProvider).

IConvertible.ToUInt32(IFormatProvider)

Para uma descrição deste elemento, veja ToUInt32(IFormatProvider).

IConvertible.ToUInt64(IFormatProvider)

Para uma descrição deste elemento, veja ToUInt64(IFormatProvider).

IDecrementOperators<Char>.CheckedDecrement(Char)

Diminui um valor.

IDecrementOperators<Char>.Decrement(Char)

Diminui um valor.

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

Divide um valor por outro para calcular o 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 para calcular o seu módulo ou resto.

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 o seu produto.

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

Multiplica dois valores juntos para calcular o seu produto.

INumberBase<Char>.Abs(Char)

Calcula o absoluto de um valor.

INumberBase<Char>.IsCanonical(Char)

Determina se um valor está na 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 inteiro par.

INumberBase<Char>.IsFinite(Char)

Determina se um valor é finito.

INumberBase<Char>.IsImaginaryNumber(Char)

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

INumberBase<Char>.IsInfinity(Char)

Determina se um valor é infinito.

INumberBase<Char>.IsInteger(Char)

Determina se um valor representa um número inteiro.

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 é menos infinito.

INumberBase<Char>.IsNormal(Char)

Determina se um valor é normal.

INumberBase<Char>.IsOddInteger(Char)

Determina se um valor representa um número inteiro í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 para calcular qual é maior.

INumberBase<Char>.MaxMagnitudeNumber(Char, Char)

Compara dois valores para calcular qual tem maior magnitude e devolve o outro valor se uma entrada for NaN.

INumberBase<Char>.MinMagnitude(Char, Char)

Compara dois valores para calcular qual é menor.

INumberBase<Char>.MinMagnitudeNumber(Char, Char)

Compara dois valores para calcular que tem a magnitude menor e devolve 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)

Divide um intervalo de caracteres num valor.

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

Transforma uma cadeia num valor.

INumberBase<Char>.Radix

Obtém a raiz, ou base, para o tipo.

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

Representa um carácter como uma unidade de código UTF-16.

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

Representa um carácter como uma unidade de código UTF-16.

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

Representa um carácter como uma unidade de código UTF-16.

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

Tenta converter uma instância do tipo atual para outro tipo, lançando uma exceção de overflow para quaisquer valores que estejam fora do intervalo representável do tipo atual.

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

Tenta converter uma instância do tipo atual para outro tipo, saturando quaisquer valores que estejam fora do intervalo representável do tipo atual.

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

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

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

Representa um carácter como uma unidade de código UTF-16.

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

Representa um carácter como uma unidade de código UTF-16.

INumberBase<Char>.Zero

Obtém o valor 0 do tipo.

IParsable<Char>.Parse(String, IFormatProvider)

Transforma uma cadeia num valor.

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

Representa um carácter como uma unidade de código UTF-16.

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

Desloca um valor deixado por uma determinada quantia.

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

Desloca um valor para a direita numa determinada quantia.

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

Desloca um valor para a direita numa determinada quantia.

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

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

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

Divide um intervalo de caracteres num valor.

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

Representa um carácter como uma unidade de código UTF-16.

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

Subtrai dois valores para calcular a sua diferença.

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

Subtrai dois valores para calcular a sua 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 o plus unário de um valor.

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

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

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

Representa um carácter como uma unidade de código UTF-16.

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

Representa um carácter como uma unidade de código UTF-16.

Aplica-se a

Segurança de Thread

Todos os membros deste tipo são seguros para fios. Os membros que parecem modificar o estado da instância retornam na verdade uma nova instância inicializada com o novo valor. Como em qualquer outro tipo, a leitura e escrita numa variável partilhada que contenha uma instância deste tipo deve ser protegida por um bloqueio para garantir a segurança do thread.

Ver também