Freigeben über


StringBuilder.Capacity-Eigenschaft

Ruft die Höchstanzahl von Zeichen ab, die im durch die aktuelle Instanz reservierten Speicher enthalten sein können, oder legt diese fest.

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

Syntax

'Declaration
Public Property Capacity As Integer
'Usage
Dim instance As StringBuilder
Dim value As Integer

value = instance.Capacity

instance.Capacity = value
public int Capacity { get; set; }
public:
property int Capacity {
    int get ();
    void set (int value);
}
/** @property */
public int get_Capacity ()

/** @property */
public void set_Capacity (int value)
public function get Capacity () : int

public function set Capacity (value : int)

Eigenschaftenwert

Die Höchstanzahl von Zeichen, die im durch die aktuelle Instanz reservierten Speicher enthalten sein können.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentOutOfRangeException

Der für einen set-Vorgang angegebene Wert ist kleiner als die aktuelle Länge dieser Instanz.

– oder –

Der für einen set-Vorgang angegebene Wert ist größer als die maximale Kapazität.

Hinweise

Capacity hat keine Auswirkung auf den Zeichenfolgenwert der aktuellen Instanz. Capacity kann verkleinert werden, solange Length nicht unterschritten wird.

Der StringBuilder reserviert bei Bedarf dynamisch weiteren Speicher und vergrößert Capacity entsprechend. Zur Leistungssteigerung kann ein StringBuilder mehr Speicher als erforderlich reservieren. Die reservierte Speichermenge ist von der Implementierung abhängig.

Beispiel

Im folgenden Codebeispiel wird die Capacity-Eigenschaft veranschaulicht.

Imports System
Imports System.Text

Class Sample
   Public Shared Sub Main()
      Dim sb1 As New StringBuilder("abc")
      Dim sb2 As New StringBuilder("abc", 16)
      
      Console.WriteLine()
      Console.WriteLine("a1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity)
      Console.WriteLine("a2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity)
      Console.WriteLine("a3) sb1.ToString() = ""{0}"", sb2.ToString() = ""{1}""", _
                             sb1.ToString(),           sb2.ToString())
      Console.WriteLine("a4) sb1 equals sb2: {0}", sb1.Equals(sb2))
      
      Console.WriteLine()
      Console.WriteLine("Ensure sb1 has a capacity of at least 50 characters.")
      sb1.EnsureCapacity(50)
      
      Console.WriteLine()
      Console.WriteLine("b1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity)
      Console.WriteLine("b2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity)
      Console.WriteLine("b3) sb1.ToString() = ""{0}"", sb2.ToString() = ""{1}""", _
                             sb1.ToString(),           sb2.ToString())
      Console.WriteLine("b4) sb1 equals sb2: {0}", sb1.Equals(sb2))
      
      Console.WriteLine()
      Console.WriteLine("Set the length of sb1 to zero.")
      Console.WriteLine("Set the capacity of sb2 to 51 characters.")
      sb1.Length = 0
      sb2.Capacity = 51
      
      Console.WriteLine()
      Console.WriteLine("c1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity)
      Console.WriteLine("c2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity)
      Console.WriteLine("c3) sb1.ToString() = ""{0}"", sb2.ToString() = ""{1}""", _
                             sb1.ToString(),           sb2.ToString())
      Console.WriteLine("c4) sb1 equals sb2: {0}", sb1.Equals(sb2))
   End Sub 'Main
End Class 'Sample
'
'This example produces the following results:
'
'a1) sb1.Length = 3, sb1.Capacity = 16
'a2) sb2.Length = 3, sb2.Capacity = 16
'a3) sb1.ToString() = "abc", sb2.ToString() = "abc"
'a4) sb1 equals sb2: True
'
'Ensure sb1 has a capacity of at least 50 characters.
'
'b1) sb1.Length = 3, sb1.Capacity = 51
'b2) sb2.Length = 3, sb2.Capacity = 16
'b3) sb1.ToString() = "abc", sb2.ToString() = "abc"
'b4) sb1 equals sb2: False
'
'Set the length of sb1 to zero.
'Set the capacity of sb2 to 51 characters.
'
'c1) sb1.Length = 0, sb1.Capacity = 51
'c2) sb2.Length = 3, sb2.Capacity = 51
'c3) sb1.ToString() = "", sb2.ToString() = "abc"
'c4) sb1 equals sb2: False
'
using System;
using System.Text;

class Sample 
{
    public static void Main() 
    {
    StringBuilder sb1 = new StringBuilder("abc");
    StringBuilder sb2 = new StringBuilder("abc", 16);

    Console.WriteLine();
    Console.WriteLine("a1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity);
    Console.WriteLine("a2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity);
    Console.WriteLine("a3) sb1.ToString() = \"{0}\", sb2.ToString() = \"{1}\"", 
                           sb1.ToString(),       sb2.ToString());
    Console.WriteLine("a4) sb1 equals sb2: {0}", sb1.Equals(sb2));

    Console.WriteLine();
    Console.WriteLine("Ensure sb1 has a capacity of at least 50 characters.");
    sb1.EnsureCapacity(50);

    Console.WriteLine();
    Console.WriteLine("b1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity);
    Console.WriteLine("b2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity);
    Console.WriteLine("b3) sb1.ToString() = \"{0}\", sb2.ToString() = \"{1}\"", 
                           sb1.ToString(),       sb2.ToString());
    Console.WriteLine("b4) sb1 equals sb2: {0}", sb1.Equals(sb2));

    Console.WriteLine();
    Console.WriteLine("Set the length of sb1 to zero.");
    Console.WriteLine("Set the capacity of sb2 to 51 characters.");
    sb1.Length = 0;
    sb2.Capacity = 51;

    Console.WriteLine();
    Console.WriteLine("c1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity);
    Console.WriteLine("c2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity);
    Console.WriteLine("c3) sb1.ToString() = \"{0}\", sb2.ToString() = \"{1}\"", 
                           sb1.ToString(),       sb2.ToString());
    Console.WriteLine("c4) sb1 equals sb2: {0}", sb1.Equals(sb2));
    }
}
/*
This example produces the following results:

a1) sb1.Length = 3, sb1.Capacity = 16
a2) sb2.Length = 3, sb2.Capacity = 16
a3) sb1.ToString() = "abc", sb2.ToString() = "abc"
a4) sb1 equals sb2: True

Ensure sb1 has a capacity of at least 50 characters.

b1) sb1.Length = 3, sb1.Capacity = 51
b2) sb2.Length = 3, sb2.Capacity = 16
b3) sb1.ToString() = "abc", sb2.ToString() = "abc"
b4) sb1 equals sb2: False

Set the length of sb1 to zero.
Set the capacity of sb2 to 51 characters.

c1) sb1.Length = 0, sb1.Capacity = 51
c2) sb2.Length = 3, sb2.Capacity = 51
c3) sb1.ToString() = "", sb2.ToString() = "abc"
c4) sb1 equals sb2: False
*/
using namespace System;
using namespace System::Text;
int main()
{
   StringBuilder^ sb1 = gcnew StringBuilder( "abc" );
   StringBuilder^ sb2 = gcnew StringBuilder( "abc",16 );
   Console::WriteLine();
   Console::WriteLine( "a1) sb1->Length = {0}, sb1->Capacity = {1}", sb1->Length, sb1->Capacity );
   Console::WriteLine( "a2) sb2->Length = {0}, sb2->Capacity = {1}", sb2->Length, sb2->Capacity );
   Console::WriteLine( "a3) sb1 = \"{0}\", sb2 = \"{1}\"", sb1, sb2 );
   Console::WriteLine( "a4) sb1 equals sb2: {0}", sb1->Equals( sb2 ) );
   Console::WriteLine();
   Console::WriteLine( "Ensure sb1 has a capacity of at least 50 characters." );
   sb1->EnsureCapacity( 50 );
   Console::WriteLine();
   Console::WriteLine( "b1) sb1->Length = {0}, sb1->Capacity = {1}", sb1->Length, sb1->Capacity );
   Console::WriteLine( "b2) sb2->Length = {0}, sb2->Capacity = {1}", sb2->Length, sb2->Capacity );
   Console::WriteLine( "b3) sb1 = \"{0}\", sb2 = \"{1}\"", sb1, sb2 );
   Console::WriteLine( "b4) sb1 equals sb2: {0}", sb1->Equals( sb2 ) );
   Console::WriteLine();
   Console::WriteLine( "Set the length of sb1 to zero." );
   Console::WriteLine( "Set the capacity of sb2 to 51 characters." );
   sb1->Length = 0;
   sb2->Capacity = 51;
   Console::WriteLine();
   Console::WriteLine( "c1) sb1->Length = {0}, sb1->Capacity = {1}", sb1->Length, sb1->Capacity );
   Console::WriteLine( "c2) sb2->Length = {0}, sb2->Capacity = {1}", sb2->Length, sb2->Capacity );
   Console::WriteLine( "c3) sb1 = \"{0}\", sb2 = \"{1}\"", sb1, sb2 );
   Console::WriteLine( "c4) sb1 equals sb2: {0}", sb1->Equals( sb2 ) );
}

/*
This example produces the following results:

a1) sb1.Length = 3, sb1.Capacity = 16
a2) sb2.Length = 3, sb2.Capacity = 16
a3) sb1.ToString() = "abc", sb2.ToString() = "abc"
a4) sb1 equals sb2: True

Ensure sb1 has a capacity of at least 50 characters.

b1) sb1.Length = 3, sb1.Capacity = 51
b2) sb2.Length = 3, sb2.Capacity = 16
b3) sb1.ToString() = "abc", sb2.ToString() = "abc"
b4) sb1 equals sb2: False

Set the length of sb1 to zero.
Set the capacity of sb2 to 51 characters.

c1) sb1.Length = 0, sb1.Capacity = 51
c2) sb2.Length = 3, sb2.Capacity = 51
c3) sb1.ToString() = "", sb2.ToString() = "abc"
c4) sb1 equals sb2: False
*/
// This example demonstrates StringBuilder.EnsureCapacity
//                           StringBuilder.Capacity
//                           StringBuilder.Length
//                           StringBuilder.Equals
import System.*;
import System.Text.*;

class Sample
{
    public static void main(String[] args)
    {
        StringBuilder sb1 = new StringBuilder("abc");
        StringBuilder sb2 = new StringBuilder("abc", 16);

        Console.WriteLine();
        Console.WriteLine("a1) sb1.get_Length() = {0}, " 
            + "sb1.get_Capacity() = {1}", 
            System.Convert.ToString(sb1.get_Length()), 
            System.Convert.ToString(sb1.get_Capacity()));
        Console.WriteLine("a2) sb2.get_Length() = {0}, " 
            + "sb2.get_Capacity() = {1}", 
            System.Convert.ToString(sb2.get_Length()), 
            System.Convert.ToString(sb2.get_Capacity()));
        Console.WriteLine("a3) sb1.ToString() = \"{0}\", " 
            + "sb2.ToString() = \"{1}\"", sb1.ToString(), sb2.ToString());
        Console.WriteLine("a4) sb1 equals sb2: {0}", 
            System.Convert.ToString(sb1.Equals(sb2)));

        Console.WriteLine();
        Console.WriteLine("Ensure sb1 has a capacity of at least 50 " 
            + "characters.");
        sb1.EnsureCapacity(50);

        Console.WriteLine();
        Console.WriteLine("b1) sb1.get_Length() = {0}, " 
            + "sb1.get_Capacity() = {1}", 
            System.Convert.ToString(sb1.get_Length()), 
            System.Convert.ToString(sb1.get_Capacity()));
        Console.WriteLine("b2) sb2.get_Length() = {0}, " 
            + "sb2.get_Capacity() = {1}", 
            System.Convert.ToString(sb2.get_Length()), 
            System.Convert.ToString(sb2.get_Capacity()));
        Console.WriteLine("b3) sb1.ToString() = \"{0}\", " 
            + "sb2.ToString() = \"{1}\"", sb1.ToString(), sb2.ToString());
        Console.WriteLine("b4) sb1 equals sb2: {0}", 
            System.Convert.ToString(sb1.Equals(sb2)));

        Console.WriteLine();
        Console.WriteLine("Set the length of sb1 to zero.");
        Console.WriteLine("Set the capacity of sb2 to 51 characters.");
        sb1.set_Length(0);
        sb2.set_Capacity(51);

        Console.WriteLine();
        Console.WriteLine("c1) sb1.get_Length() = {0}, "
            + "sb1.get_Capacity() = {1}", 
            System.Convert.ToString(sb1.get_Length()), 
            System.Convert.ToString(sb1.get_Capacity()));
        Console.WriteLine("c2) sb2.get_Length() = {0}, " 
            + "sb2.get_Capacity() = {1}", 
            System.Convert.ToString(sb2.get_Length()), 
            System.Convert.ToString(sb2.get_Capacity()));
        Console.WriteLine("c3) sb1.ToString() = \"{0}\", " 
            + "sb2.ToString() = \"{1}\"", sb1.ToString(), sb2.ToString());
        Console.WriteLine("c4) sb1 equals sb2: {0}", 
            System.Convert.ToString(sb1.Equals(sb2)));
    } //main
} //Sample
/*
This example produces the following results:

a1) sb1.get_Length() = 3, sb1.get_Capacity() = 16
a2) sb2.get_Length() = 3, sb2.get_Capacity() = 16
a3) sb1.ToString() = "abc", sb2.ToString() = "abc"
a4) sb1 equals sb2: True

Ensure sb1 has a capacity of at least 50 characters.

b1) sb1.get_Length() = 3, sb1.get_Capacity() = 50
b2) sb2.get_Length() = 3, sb2.get_Capacity() = 16
b3) sb1.ToString() = "abc", sb2.ToString() = "abc"
b4) sb1 equals sb2: False

Set the length of sb1 to zero.
Set the capacity of sb2 to 51 characters.

c1) sb1.get_Length() = 0, sb1.get_Capacity() = 50
c2) sb2.get_Length() = 3, sb2.get_Capacity() = 51
c3) sb1.ToString() = "", sb2.ToString() = "abc"
c4) sb1 equals sb2: False
*/

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

StringBuilder-Klasse
StringBuilder-Member
System.Text-Namespace