Udostępnij za pośrednictwem


TextElementEnumerator Klasa

Definicja

Wylicza elementy tekstowe ciągu.

public ref class TextElementEnumerator : System::Collections::IEnumerator
public class TextElementEnumerator : System.Collections.IEnumerator
[System.Serializable]
public class TextElementEnumerator : System.Collections.IEnumerator
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class TextElementEnumerator : System.Collections.IEnumerator
type TextElementEnumerator = class
    interface IEnumerator
[<System.Serializable>]
type TextElementEnumerator = class
    interface IEnumerator
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TextElementEnumerator = class
    interface IEnumerator
Public Class TextElementEnumerator
Implements IEnumerator
Dziedziczenie
TextElementEnumerator
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie TextElementEnumerator użyto klasy do wyliczenia elementów tekstowych ciągu.

using namespace System;
using namespace System::Globalization;
int main()
{

   // Creates and initializes a String containing the following:
   //   - a surrogate pair (high surrogate U+D800 and low surrogate U+DC00)
   //   - a combining character sequence (the Latin small letter S"a" followed by the combining grave accent)
   //   - a base character (the ligature S"")
   String^ myString = L"\xD800\xDC00"
   L"a\u0300\u00C6";

   // Creates and initializes a TextElementEnumerator for myString.
   TextElementEnumerator^ myTEE = StringInfo::GetTextElementEnumerator( myString );

   // Displays the values returned by ElementIndex, Current and GetTextElement.
   // Current and GetTextElement return a String* containing the entire text element.
   Console::WriteLine( "Index\tCurrent\tGetTextElement" );
   myTEE->Reset();
   while ( myTEE->MoveNext() )
      Console::WriteLine( "[{0}]:\t {1}\t {2}", myTEE->ElementIndex, myTEE->Current, myTEE->GetTextElement() );
}

/*
This code produces the following output.  The question marks take the place of high and low surrogates.

Index   Current GetTextElement
[0]:    𐀀       𐀀
[2]:    à       à
[4]:    Æ       Æ

*/
using System;
using System.Globalization;

public class SamplesTextElementEnumerator  {

   public static void Main()  {

      // Creates and initializes a String containing the following:
      //   - a surrogate pair (high surrogate U+D800 and low surrogate U+DC00)
      //   - a combining character sequence (the Latin small letter "a" followed by the combining grave accent)
      //   - a base character (the ligature "")
      String myString = "\uD800\uDC00\u0061\u0300\u00C6";

      // Creates and initializes a TextElementEnumerator for myString.
      TextElementEnumerator myTEE = StringInfo.GetTextElementEnumerator( myString );

      // Displays the values returned by ElementIndex, Current and GetTextElement.
      // Current and GetTextElement return a string containing the entire text element.
      Console.WriteLine( "Index\tCurrent\tGetTextElement" );
      myTEE.Reset();
      while (myTEE.MoveNext())  {
         Console.WriteLine( "[{0}]:\t{1}\t{2}", myTEE.ElementIndex, myTEE.Current, myTEE.GetTextElement() );
      }
   }
}

/*
This code produces the following output.  The question marks take the place of high and low surrogates.

Index   Current GetTextElement
[0]:    𐀀       𐀀
[2]:    à       à
[4]:    Æ       Æ

*/
Imports System.Globalization

Public Class SamplesTextElementEnumerator

   Public Shared Sub Main()

      ' Creates and initializes a String containing the following:
      '   - a surrogate pair (high surrogate U+D800 and low surrogate U+DC00)
      '   - a combining character sequence (the Latin small letter "a" followed by the combining grave accent)
      '   - a base character (the ligature "")
      Dim myString As String = ChrW(&HD800) & ChrW(&HDC00) & ChrW(&H0061) & ChrW(&H0300) & ChrW(&H00C6)

      ' Creates and initializes a TextElementEnumerator for myString.
      Dim myTEE As TextElementEnumerator = StringInfo.GetTextElementEnumerator( myString )

      ' Displays the values returned by ElementIndex, Current and GetTextElement.
      ' Current and GetTextElement return a string containing the entire text element.
      Console.WriteLine("Index" + ControlChars.Tab + "Current" + ControlChars.Tab + "GetTextElement")
      myTEE.Reset()
      While myTEE.MoveNext()
         Console.WriteLine("[{0}]:" + ControlChars.Tab + "{1}" + ControlChars.Tab + "{2}", myTEE.ElementIndex, myTEE.Current, myTEE.GetTextElement())
      End While

   End Sub

End Class

'This code produces the following output.  The question marks take the place of high and low surrogates.
'
'Index   Current GetTextElement
'[0]:    𐀀       𐀀
'[2]:    à       à
'[4]:    Æ       Æ

Uwagi

.NET Framework definiuje element tekstowy jako jednostkę tekstu, która jest wyświetlana jako pojedynczy znak, czyli grafem. Element tekstowy może być dowolny z następujących elementów:

  • Znak podstawowy, który jest reprezentowany jako pojedyncza Char wartość. Na przykład WIELKA LITERA A (U+0041) i ALFABET ŁACIŃSKI AE (U+00E6) są znakami podstawowymi.

  • Łącząca sekwencję znaków, która składa się z znaku podstawowego i co najmniej jednego połączonego znaku. Na przykład wielka litera A (U+0041) po której następuje połączenie MACRONa (U+0304) to łącząca sekwencja znaków.

  • Pary zastępcze, które Standard Unicode definiuje jako zakodowaną reprezentację znaków dla pojedynczego abstrakcyjnego znaku składającego się z sekwencji dwóch jednostek kodu: wysokiej zastępczej i niskiej zastępczej. Pary zastępcze są używane do reprezentowania znaków spoza podstawowej płaszczyzny wielojęzycznej Unicode jako zakodowanych znaków UTF-16. Na przykład LITERA GOTYCKA SAUIL (U+10343) jest reprezentowana w kodowaniu UTF-16 jako wysoki zastępca, którego wartość jest 0xD800 i niski zastępca, którego wartość jest 0xDF43. Para zastępcza może reprezentować znak podstawowy lub znak łączący.

Klasa TextElementEnumerator umożliwia pracę z elementami tekstowymi w ciągu, a nie z pojedynczymi Char obiektami.

Utworzysz wystąpienie TextElementEnumerator obiektu, który reprezentuje określony ciąg, przekazując ciąg do StringInfo.GetTextElementEnumerator metody. Spowoduje to zwrócenie modułu wyliczającego umieszczonego przed pierwszym elementem tekstowym w ciągu. Reset Wywołanie metody powoduje również powrót modułu wyliczającego do tej pozycji. Ponieważ reprezentuje to nieprawidłowy stan, należy wywołać metodę MoveNext , aby przejść do pierwszego elementu tekstowego ciągu przed odczytaniem wartości Current właściwości w celu zwrócenia bieżącego elementu tekstowego.

Podczas pracy z obiektem TextElementEnumerator odpowiadasz za pozycjonowanie modułu wyliczającego. Właściwość Current zwraca ten sam element tekstowy do momentu wywołania metody MoveNext lub Reset. Moduł wyliczający jest w nieprawidłowym stanie, jeśli jest umieszczony przed pierwszym elementem tekstowym lub po ostatnim elemecie tekstowym w ciągu. Gdy moduł wyliczający jest w nieprawidłowym stanie, próba pobrania wartości Current właściwości zgłasza wyjątek. Możesz określić, czy moduł wyliczający jest w nieprawidłowym stanie, testując, czy wartość MoveNext zwracana właściwości to false.

Obiekt TextElementEnumerator reprezentuje migawkę bieżącego stanu zmiennej ciągu lub literału ciągu w momencie utworzenia TextElementEnumerator wystąpienia obiektu. Należy pamiętać, że:

  • Moduły wyliczania elementów tekstowych mogą służyć tylko do odczytywania danych w ciągu. Nie mogą modyfikować bazowego ciągu.

  • Moduł wyliczający nie ma wyłącznego dostępu do ciągu, który reprezentuje. Zmienną ciągu można zmodyfikować po utworzeniu modułu wyliczającego.

  • Obiekt TextElementEnumerator wylicza elementy tekstowe obecne w ciągu w momencie utworzenia TextElementEnumerator wystąpienia obiektu. Nie odzwierciedla żadnych kolejnych zmian w zmiennej ciągu, jeśli ta zmienna zostanie później zmodyfikowana.

  • TextElementEnumerator Ponieważ klasa nie zastępuje , dwa TextElementEnumerator obiekty reprezentujące Object.Equalsten sam ciąg zostaną uznane za nierówne.

Właściwości

Current

Pobiera bieżący element tekstowy w ciągu.

ElementIndex

Pobiera indeks elementu tekstowego, na który obecnie znajduje się moduł wyliczający.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetTextElement()

Pobiera bieżący element tekstowy w ciągu.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MoveNext()

Rozwija moduł wyliczający do następnego elementu tekstowego ciągu.

Reset()

Ustawia moduł wyliczający na jego początkowe położenie, czyli przed pierwszym elementem tekstowym w ciągu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też