TextElementEnumerator Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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) |