Freigeben über


String-Konstruktor (Char , Int32, Int32)

Initialisiert eine neue Instanz der String-Klasse mit dem Wert, der durch ein Array von Unicode-Zeichen, die Position des ersten Zeichens innerhalb dieses Arrays und eine Länge bestimmt wird.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Sub New ( _
    value As Char(), _
    startIndex As Integer, _
    length As Integer _
)
'Usage
Dim value As Char()
Dim startIndex As Integer
Dim length As Integer

Dim instance As New String(value, startIndex, length)
public String (
    char[] value,
    int startIndex,
    int length
)
public:
String (
    array<wchar_t>^ value, 
    int startIndex, 
    int length
)
public String (
    char[] value, 
    int startIndex, 
    int length
)
public function String (
    value : char[], 
    startIndex : int, 
    length : int
)

Parameter

  • value
    Ein Array von Unicode-Zeichen.
  • startIndex
    Die Anfangsposition in value.
  • length
    Die Anzahl der aus value zu verwendenden Zeichen.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentNullException

value ist NULL (Nothing in Visual Basic).

ArgumentOutOfRangeException

startIndex oder length ist kleiner als 0 (null).

– oder –

Die Summe von startIndex und length ist größer als die Anzahl der Elemente von value.

Hinweise

Wenn length 0 (null) ist, wird eine Empty-Instanz initialisiert.

Dieser Konstruktor kopiert Unicode-Zeichen aus value ab startIndex bis (startIndex+length-1).

Leistungsaspekte

In Anwendungen, die Textstreams analysieren oder decodieren, wird oft der String-Konstruktor oder die StringBuilder.Append-Methode verwendet, um eine Reihe von Zeichen in eine Zeichenfolge zu konvertieren. Wenn in der Anwendung wiederholt die gleiche Reihe von Zeichen vorkommt und jedes Mal neue Zeichenfolgen erstellt werden, anstatt eine Zeichenfolge zu erstellen und mehrfach zu verwenden, belegt dies unnötig viel Arbeitsspeicher.

Wenn in der Anwendung wiederholt die gleichen Reihen von Zeichen verwendet werden, diese im Voraus jedoch nicht bekannt sind, besteht die Möglichkeit, eine Nachschlagetabelle zu verwenden, anstatt mithilfe des String-Konstruktors neue String-Objekte zu erstellen. Angenommen, die Anwendung liest und analysiert einen Zeichenstream aus einer Datei, die XML-Tags und -Attribute enthält. Beim Analysieren des Streams treten bestimmte Token (d. h. Reihen von Zeichen mit symbolischer Bedeutung) wiederholt auf. Mit hoher Wahrscheinlichkeit kommen Token, die den Zeichenfolgen "0", "1", "true" und "false" entsprechen, in einem XML-Stream häufig vor.

Anstatt jedes von der Anwendung in einer neuen Zeichenfolge gefundene Token zu konvertieren, können Sie ein NameTable-Objekt für häufig auftretende Zeichenfolgen erstellen. Das NameTable-Objekt verbessert die Leistung, da es gespeicherte Zeichenfolgen abruft, ohne temporären Speicher zuzuordnen.

Wenn die Anwendung ein neues Token findet, können Sie mit der NameTable.Get-Methode versuchen, das Token aus der Tabelle abzurufen. Wenn das Token vorhanden ist, gibt die Methode die entsprechende Zeichenfolge zurück. Wenn das Token nicht vorhanden ist, verwenden Sie die NameTable.Add-Methode, um das Token in die Tabelle einzufügen. Nachdem das Token eingefügt worden ist, gibt die Methode die entsprechende Zeichenfolge zurück. In jedem Fall wird die entsprechende Zeichenfolge an die Anwendung zurückgegeben.

Beispiel

Im folgenden einfachen Codebeispiel wird veranschaulicht, wie mit diesem Konstruktor eine Instanz der String-Klasse erstellt werden kann.

// Create a Unicode String with 5 Greek Alpha characters
String szGreekAlpha = new String('\u0319',5);
// Create a Unicode String with a Greek Omega character
String szGreekOmega = new String(new char [] {'\u03A9','\u03A9','\u03A9'},2,1);

String szGreekLetters = String.Concat(szGreekOmega, szGreekAlpha, szGreekOmega.Clone());

// Examine the result
Console.WriteLine(szGreekLetters);

// The first index of Alpha
int ialpha = szGreekLetters.IndexOf('\u0319');
// The last index of Omega
int iomega = szGreekLetters.LastIndexOf('\u03A9');

Console.WriteLine("The Greek letter Alpha first appears at index " + ialpha +
    " and Omega last appears at index " + iomega + " in this String.");
// Create a Unicode String with 5 Greek Alpha characters
String^ szGreekAlpha = gcnew String( L'\x0319',5 );

// Create a Unicode String with a Greek Omega character
wchar_t charArray5[3] = {L'\x03A9',L'\x03A9',L'\x03A9'};
String^ szGreekOmega = gcnew String( charArray5,2,1 );
String^ szGreekLetters = String::Concat( szGreekOmega, szGreekAlpha, szGreekOmega->Clone() );

// Examine the result
Console::WriteLine( szGreekLetters );

// The first index of Alpha
int ialpha = szGreekLetters->IndexOf( L'\x0319' );

// The last index of Omega
int iomega = szGreekLetters->LastIndexOf( L'\x03A9' );
Console::WriteLine( String::Concat(  "The Greek letter Alpha first appears at index ", Convert::ToString( ialpha ) ) );
Console::WriteLine( String::Concat(  " and Omega last appears at index ", Convert::ToString( iomega ),  " in this String." ) );

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

String-Klasse
String-Member
System-Namespace
Char-Struktur
Int32-Struktur