Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
Char-Struktur
Stellt ein Unicode-Zeichen dar.
Assembly: mscorlib (in mscorlib.dll)
Der Char-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
CompareTo(Char) | Vergleicht diese Instanz mit einem angegebenen Char-Objekt und gibt an, ob diese Instanz in der Sortierreihenfolge an einer früheren, späteren oder derselben Position wie das angegebene Char-Objekt aufgeführt wird. |
|
CompareTo(Object) | Vergleicht diese Instanz mit einem angegebenen Objekt und gibt an, ob diese Instanz in der Sortierreihenfolge an einer früheren, späteren oder derselben Position wie das angegebene Object aufgeführt wird. |
|
ConvertFromUtf32 | Konvertiert den angegebenen Unicode-Codepunkt in eine UTF-16-codierte Zeichenfolge. |
|
ConvertToUtf32(Char, Char) | Konvertiert den Wert eines UTF-16-codierten Ersatzzeichenpaars in einen Unicode-Codepunkt. |
|
ConvertToUtf32(String, Int32) | Konvertiert den Wert eines UTF-16-codierten Zeichens oder Ersatzzeichenpaars an der angegebenen Position in einer Zeichenfolge in einen Unicode-Codepunkt. |
|
Equals(Char) | Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Char-Objekt ist. |
|
Equals(Object) | Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Überschreibt ValueType.Equals(Object).) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetHashCode | Gibt den Hashcode für diese Instanz zurück. (Überschreibt ValueType.GetHashCode().) |
|
GetNumericValue(Char) | Konvertiert das angegebene numerische Unicode-Zeichen in eine Gleitkommazahl mit doppelter Genauigkeit. |
|
GetNumericValue(String, Int32) | Konvertiert das numerische Unicode-Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge in eine Gleitkommazahl mit doppelter Genauigkeit. |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
GetTypeCode | Gibt den TypeCode für den Werttyp Char zurück. |
|
GetUnicodeCategory(Char) | Kategorisiert ein angegebenes Unicode-Zeichen in einer Gruppe, die durch einen der UnicodeCategory-Werte bezeichnet wird. |
|
GetUnicodeCategory(String, Int32) | Kategorisiert das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge in einer Gruppe, die durch einen der UnicodeCategory-Werte bezeichnet wird. |
|
IsControl(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Steuerzeichen kategorisiert wird. |
|
IsControl(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Steuerzeichen kategorisiert wird. |
|
IsDigit(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Dezimalzahl kategorisiert wird. |
|
IsDigit(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Dezimalzahl kategorisiert wird. |
|
IsHighSurrogate(Char) | Gibt an, ob das angegebene Char-Objekt ein hohes Ersatzzeichen ist. |
|
IsHighSurrogate(String, Int32) | Gibt an, ob das Char-Objekt an der angegebenen Position in einer Zeichenfolge ein hohes Ersatzzeichen ist. |
|
IsLetter(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Unicode-Buchstabe kategorisiert wird. |
|
IsLetter(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Unicode-Buchstabe kategorisiert wird. |
|
IsLetterOrDigit(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Buchstabe oder Dezimalzahl kategorisiert wird. |
|
IsLetterOrDigit(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Buchstabe oder Dezimalzahl kategorisiert wird. |
|
IsLower(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Kleinbuchstabe kategorisiert wird. |
|
IsLower(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Kleinbuchstabe kategorisiert wird. |
|
IsLowSurrogate(Char) | Gibt an, ob das angegebene Char-Objekt ein niedriges Ersatzzeichen ist. |
|
IsLowSurrogate(String, Int32) | Gibt an, ob das Char-Objekt an der angegebenen Position in einer Zeichenfolge ein niedriges Ersatzzeichen ist. |
|
IsNumber(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Zahl kategorisiert wird. |
|
IsNumber(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Zahl kategorisiert wird. |
|
IsPunctuation(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Satzzeichen kategorisiert wird. |
|
IsPunctuation(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Satzzeichen kategorisiert wird. |
|
IsSeparator(Char) | Gibt an, ob ein angegebenes Unicode-Zeichen als Trennzeichen kategorisiert wird. |
|
IsSeparator(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Trennzeichen kategorisiert wird. |
|
IsSurrogate(Char) | Gibt an, ob das angegebene Zeichen über einen Ersatzzeichencodepunkt verfügt. |
|
IsSurrogate(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge über einen Ersatzzeichen-Codepunkt verfügt. |
|
IsSurrogatePair(Char, Char) | Gibt an, ob die beiden angegebenen Char-Objekte ein Ersatzzeichenpaar bilden. |
|
IsSurrogatePair(String, Int32) | Gibt an, ob zwei aufeinander folgende Char-Objekte an einer angegebenen Position in einer Zeichenfolge ein Ersatzzeichenpaar bilden. |
|
IsSymbol(Char) | Gibt an, ob ein angegebenes Unicode-Zeichen als Symbolzeichen kategorisiert wird. |
|
IsSymbol(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Symbolzeichen kategorisiert wird. |
|
IsUpper(Char) | Gibt an, ob ein angegebenes Unicode-Zeichen als Großbuchstabe kategorisiert wird. |
|
IsUpper(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Großbuchstabe kategorisiert wird. |
|
IsWhiteSpace(Char) | Gibt an, ob das angegebene Unicode-Zeichen als Leerraum kategorisiert wird. |
|
IsWhiteSpace(String, Int32) | Gibt an, ob das Zeichen an der angegebenen Position in einer angegebenen Zeichenfolge als Leerraum kategorisiert wird. |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
Parse | Konvertiert den Wert der angegebenen Zeichenfolge in das entsprechende Unicode-Zeichen. |
|
ToLower(Char) | Konvertiert den Wert eines Unicode-Zeichens in den entsprechenden Kleinbuchstaben. |
|
ToLower(Char, CultureInfo) | Konvertiert den Wert eines angegebenen Unicode-Zeichens unter Verwendung der angegebenen kulturabhängigen Formatierungsinformationen in den entsprechenden Kleinbuchstaben. |
|
ToLowerInvariant | Konvertiert den Wert eines Unicode-Zeichens in dessen Entsprechung in Kleinbuchstaben unter Verwendung der Regeln der invarianten Kultur für Groß- und Kleinschreibung. |
|
ToString() | Konvertiert den Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung. (Überschreibt ValueType.ToString().) |
|
ToString(Char) | Konvertiert das angegebene Unicode-Zeichen in die entsprechende Zeichenfolgendarstellung. |
|
ToString(IFormatProvider) | Konvertiert den Wert dieser Instanz unter Verwendung der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgenentsprechung. |
|
ToUpper(Char) | Konvertiert den Wert eines Unicode-Zeichens in den entsprechenden Großbuchstaben. |
|
ToUpper(Char, CultureInfo) | Konvertiert den Wert eines angegebenen Unicode-Zeichens unter Verwendung der angegebenen kulturabhängigen Formatierungsinformationen in den entsprechenden Großbuchstaben. |
|
ToUpperInvariant | Konvertiert den Wert eines Unicode-Zeichens in dessen Entsprechung in Großbuchstaben unter Verwendung der Regeln der invarianten Kultur für Groß- und Kleinschreibung. |
|
TryParse | Konvertiert den Wert der angegebenen Zeichenfolge in das entsprechende Unicode-Zeichen. Ein Rückgabecode gibt an, ob die Konvertierung erfolgreich war oder nicht. |
| Name | Beschreibung | |
|---|---|---|
|
MaxValue | Stellt den größtmöglichen Wert von Char dar. Dieses Feld ist konstant. |
|
MinValue | Stellt den kleinstmöglichen Wert einer Char-Struktur dar. Dieses Feld ist konstant. |
| Name | Beschreibung | |
|---|---|---|
|
IConvertible.ToBoolean | Infrastruktur. Hinweis Diese Konvertierung wird nicht unterstützt. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst. |
|
IConvertible.ToByte | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToByte. |
|
IConvertible.ToChar | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToChar. |
|
IConvertible.ToDateTime | Infrastruktur. Hinweis Diese Konvertierung wird nicht unterstützt. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst. |
|
IConvertible.ToDecimal | Infrastruktur. Hinweis Diese Konvertierung wird nicht unterstützt. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst. |
|
IConvertible.ToDouble | Infrastruktur. Hinweis Diese Konvertierung wird nicht unterstützt. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst. |
|
IConvertible.ToInt16 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt16. |
|
IConvertible.ToInt32 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt32. |
|
IConvertible.ToInt64 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToInt64. |
|
IConvertible.ToSByte | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToSByte. |
|
IConvertible.ToSingle | Infrastruktur. Hinweis Diese Konvertierung wird nicht unterstützt. Bei einem entsprechenden Versuch wird eine InvalidCastException ausgelöst. |
|
IConvertible.ToType | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToType. |
|
IConvertible.ToUInt16 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToUInt16. |
|
IConvertible.ToUInt32 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToUInt32. |
|
IConvertible.ToUInt64 | Infrastruktur. Eine Beschreibung dieses Members finden Sie unter IConvertible.ToUInt64. |
.NET Framework stellt mithilfe der Char-Struktur ein Unicode-Zeichen dar. Im Unicode-Standard werden alle Unicode-Zeichen mit einer eindeutigen 21-Bit-Skalarzahl bezeichnet, die Codepunkt genannt wird, und die UTF-16-Codierungsform definiert, die angibt, wie ein Codepunkt in einer Folge eines oder mehrerer 16-Bit-Werte codiert werden. Jeder 16-Bit-Wert liegt zwischen hexadezimal 0x0000 und hexadezimal 0xFFFF und wird in einer Char-Struktur gespeichert. Der Wert eines Char-Objekts ist sein numerischer (ordinaler) 16-Bit-Wert.
Char-Objekte, Unicode-Zeichen und Zeichenfolgen
Ein String-Objekt ist eine sequenzielle Auflistung von Char-Strukturen, die eine Textzeichenfolge darstellt. Die meisten Unicode-Zeichen können durch ein einzelnes Char-Objekt dargestellt werden, aber ein als Basiszeichen, Ersatzzeichenpaar und oder Kombinationszeichenfolge codiertes Zeichen wird durch mehrere Char-Objekte dargestellt. Daher ist eine Char-Struktur in einem String-Objekt nicht notwendigerweise gleich einem einzelnen Unicode-Zeichen.
Mehrere 16-Bit-Codepunkte werden verwendet, um einzelne Unicode-Zeichen in den folgenden Fällen darzustellen:
-
Symbole, die möglicherweise aus einem einzelnen Zeichen oder einem Basiszeichen gefolgt von mindestens einem Zeichen ohne Zwischenraum bestehen. Das Zeichen ä wird z. B. durch ein Char-Objekt dargestellt, dessen Codepunkt U+0061 ist, gefolgt von einem Char-Objekt, dessen Codepunkt U+0308 ist. (Das Zeichen "ä" kann auch von einem einzelnen Char-Objekt definiert werden, das über den Codepunkt U+00E4 verfügt.) Im folgenden Beispiel wird veranschaulicht, dass das Zeichen "ä" aus zwei Char-Objekten besteht.
using System; using System.IO; public class Example { 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: // ä
-
Zeichen außerhalb der Unicode Basic Multilingual Plane (BMP). Unicode unterstützt sechzehn Ebenen zusätzlich zum BMP, der Ebene 0 darstellt. Ein Unicode-Codepunkt wird in UTF-32 durch einen 21-Bit-Wert, der die Ebene enthält, dargestellt. U+1D160 stellt z. B. das Zeichen für das musikalische Symbol der Achtelnote dar. Da UTF-16-Codierung nur 16 Bits hat, werden Zeichen außerhalb des BMP von Ersatzzeichenpaaren in UTF-16 dargestellt. Im folgenden Beispiel wird veranschaulicht, dass die UTF-32-Entsprechung von U+1D160, dem musikalischen Symbol der Achtelnote, U+D834 U+DD60 ist. U+D834 ist das hohe Ersatzzeichen; hohe Ersatzzeichen liegen zwischen U+D800 und U+DBFF. U+DD60 ist das niedrige Ersatzzeichen; niedrige Ersatzzeichen liegen zwischen U+DC00 und U+DFFF.
using System; using System.IO; public class Example { public static void Main() { StreamWriter sw = new StreamWriter(@".\chars2.txt"); int utf32 = 0x1D160; string surrogate = Char.ConvertFromUtf32(utf32); sw.WriteLine("U+{0:X6} UTF-32 = {1} ({2}) UTF-16", utf32, surrogate, ShowCodePoints(surrogate)); sw.Close(); } private static string ShowCodePoints(string value) { string retval = null; foreach (var ch in value) retval += String.Format("U+{0:X4} ", Convert.ToUInt16(ch)); return retval.Trim(); } } // The example produces the following output: // U+01D160 UTF-32 = ð (U+D834 U+DD60) UTF-16
Da ein einzelnes Zeichen von mehreren Char-Objekten dargestellt werden kann, empfiehlt es sich, Zeichenfolgen statt einzelner Zeichen zu verwenden, um linguistischen Inhalt darzustellen und zu analysieren.
Funktionalität
Die Char-Struktur stellt Methoden zum Vergleichen von Char-Objekten, zum Konvertieren des Werts des aktuellen Char-Objekts in ein Objekt eines anderen Typs und zum Bestimmen der Unicode-Kategorie eines Char-Objekts bereit:
-
Verwenden Sie die CompareTo-Methode und die Equals-Methode, um Char-Objekte zu vergleichen.
-
Verwenden Sie die ConvertFromUtf32-Methode, um einen Codepunkt in eine Zeichenfolge zu konvertieren. Verwenden Sie die ConvertToUtf32-Methoden, um ein Char-Objekt oder ein Ersatzzeichenpaar aus Char-Objekten in einen Codepunkt zu konvertieren.
-
Mit den GetUnicodeCategory-Methoden können Sie die Unicode-Kategorie eines Zeichens abrufen. Verwenden Sie die Methoden IsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpper und IsWhiteSpace, um zu bestimmen, ob ein Zeichen sich in einer bestimmten Unicode-Kategorie wie Ziffer, Buchstabe, Satzzeichen, Steuerzeichen usw. befindet.
-
Verwenden Sie die GetNumericValue-Methoden, um ein Char-Objekt, das eine Zahl darstellt, in einen numerischen Werttyp darzustellen. Verwenden Sie Parse und TryParse, um ein Zeichen in einer Zeichenfolge in ein Char-Objekt zu konvertieren. Verwenden Sie ToString, um ein Char-Objekt in ein String-Objekt zu konvertieren.
-
Verwenden Sie die Methoden ToLower, ToLowerInvariant, ToUpper und ToUpperInvariant, um die Groß- und Kleinschreibung eines Char-Objekts zu ändern.
Im folgenden Codebeispiel werden einige der Methoden in Char veranschaulicht.
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" } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle Member dieses Typs sind threadsicher. Member, die scheinbar den Zustand einer Instanz ändern, geben in Wirklichkeit eine neue Instanz zurück, die mit dem neuen Wert initialisiert wurde. Wie bei allen anderen Typen müssen Lese- und Schreibzugriffe auf eine freigegebene Variable, die eine Instanz dieses Typs enthält, durch eine Sperre geschützt werden, um die Threadsicherheit zu gewährleisten.