Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การหาความจุสูงสุด (MaxCapacity) ของ StringBuilder ใน C#

ภาพรวม

StringBuilder.MaxCapacity คือขีดจำกัดสูงสุดของความจุ (ปกติ 2,147,483,647 = Int32.MaxValue) ไม่สามารถเปลี่ยนแปลงได้

ตัวอย่างที่ 1: ตรวจสอบ Capacity และ MaxCapacity ของ StringBuilder 4 แบบ

using System;
using System.Text;

public class Demo
{
    public static void Main(String[] args)
    {
        StringBuilder strBuilder1 = new StringBuilder("Amy");
        StringBuilder strBuilder2 = new StringBuilder("Katie");
        StringBuilder strBuilder3 = new StringBuilder();
        StringBuilder strBuilder4 = new StringBuilder(5);

        strBuilder2 = strBuilder3;

        Console.WriteLine("Is StringBuilder3 equal to StringBuilder2? = " + strBuilder3.Equals(strBuilder2));
        Console.WriteLine("StringBuilder1 capacity = " + strBuilder1.Capacity);
        Console.WriteLine("StringBuilder1 maximum capacity = " + strBuilder1.MaxCapacity);
        Console.WriteLine("StringBuilder2 capacity = " + strBuilder2.Capacity);
        Console.WriteLine("StringBuilder2 maximum capacity = " + strBuilder2.MaxCapacity);
        Console.WriteLine("StringBuilder3 capacity = " + strBuilder3.Capacity);
        Console.WriteLine("StringBuilder3 maximum capacity = " + strBuilder3.MaxCapacity);
        Console.WriteLine("StringBuilder4 capacity = " + strBuilder4.Capacity);
        Console.WriteLine("StringBuilder4 maximum capacity = " + strBuilder4.MaxCapacity);
    }
}

ผลลัพธ์

Is StringBuilder3 equal to StringBuilder2? = True
StringBuilder1 capacity = 16
StringBuilder1 maximum capacity = 2147483647
StringBuilder2 capacity = 16
StringBuilder2 maximum capacity = 2147483647
StringBuilder3 capacity = 16
StringBuilder3 maximum capacity = 2147483647
StringBuilder4 capacity = 5
StringBuilder4 maximum capacity = 2147483647

ตัวอย่างที่ 2: ตรวจสอบ Capacity, Length, MaxCapacity ของ StringBuilder เดียว

using System;
using System.Text;

public class Demo
{
    public static void Main(String[] args)
    {
        StringBuilder strBuilder = new StringBuilder("Amy");

        Console.WriteLine("StringBuilder capacity = " + strBuilder.Capacity);
        Console.WriteLine("StringBuilder length = " + strBuilder.Length);
        Console.WriteLine("StringBuilder maximum capacity = " + strBuilder.MaxCapacity);
    }
}

ผลลัพธ์

StringBuilder capacity = 16
StringBuilder length = 3
StringBuilder maximum capacity = 2147483647

สรุป

  • MaxCapacity เป็นค่าคงที่ 2,147,483,647 (Int32.MaxValue) สำหรับทุก StringBuilder
  • Capacity เพิ่มขึ้นอัตโนมัติเมื่อเกิน (ปกติคูณ 2) จนถึง MaxCapacity
  • Length = จำนวนตัวอักษรจริงในขณะนั้น
  • ไม่สามารถตั้งค่า MaxCapacity เองได้