Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 StringBuilder의 MaxCapacity(최대 용량)를 확인하는 방법

C#에서 StringBuilder의 최대 용량(MaxCapacity)을 알아내려면 MaxCapacity 속성을 사용하면 됩니다. 이 속성은 해당 인스턴스가 저장할 수 있는 최대 문자 수를 정수로 반환하며, 별도의 매개변수 없이 간단히 호출할 수 있습니다.

예제 1: 여러 StringBuilder 객체의 용량 비교

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("StringBuider1 capacity = " + strBuilder1.Capacity);
      Console.WriteLine("StringBuider1 maximum capacity = " + strBuilder1.MaxCapacity);
      Console.WriteLine("StringBuider2 capacity = " + strBuilder2.Capacity);
      Console.WriteLine("StringBuider2 maximum capacity = " + strBuilder2.MaxCapacity);
      Console.WriteLine("StringBuider3 capacity = " + strBuilder3.Capacity);
      Console.WriteLine("StringBuider3 maximum capacity = " + strBuilder3.MaxCapacity);
      Console.WriteLine("StringBuider4 capacity = " + strBuilder4.Capacity);
      Console.WriteLine("StringBuider4 maximum capacity = " + strBuilder4.MaxCapacity);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Is StringBuilder3 equal to StringBuilder2? = True
StringBuider1 capacity = 16
StringBuider1 maximum capacity = 2147483647
StringBuider2 capacity = 16
StringBuider2 maximum capacity = 2147483647
StringBuider3 capacity = 16
StringBuider3 maximum capacity = 2147483647
StringBuider4 capacity = 5
StringBuider4 maximum capacity = 2147483647

결과 분석

  • Capacity(용량): 현재 StringBuilder에 할당된 버퍼의 문자 수입니다. 기본 생성자로 생성하면 16부터 시작하며, 생성자에 용량을 직접 지정하면 그 값으로 초기화됩니다(예: strBuilder4는 5).
  • MaxCapacity(최대 용량): StringBuilder가 저장할 수 있는 이론상 최대 문자 수로, 기본값은 int.MaxValue인 2,147,483,647입니다. 모든 인스턴스에서 동일하게 표시됩니다.
  • Equals() 비교: strBuilder2에 strBuilder3을 대입한 후 Equals로 비교하면 두 변수가 같은 인스턴스를 참조하므로 True가 반환됩니다.

예제 2: Capacity, Length, MaxCapacity 비교

using System;
using System.Text;
public class Demo {
   public static void Main(String[] args) {
      StringBuilder strBuilder = new StringBuilder("Amy");
      Console.WriteLine("StringBuider capacity = " + strBuilder.Capacity);
      Console.WriteLine("StringBuider length = " + strBuilder.Length);
      Console.WriteLine("StringBuider maximum capacity = " + strBuilder.MaxCapacity);
   }
}

출력 결과

실행하면 아래와 같은 결과를 얻을 수 있습니다.

StringBuider capacity = 16
StringBuider length = 3
StringBuider maximum capacity = 2147483647

정리하면, Capacity는 실제 할당된 버퍼 크기, Length는 현재 저장된 문자열의 길이, MaxCapacity는 저장 가능한 최대 문자 수를 의미합니다. 세 속성의 차이를 이해하면 StringBuilder의 메모리 동작과 성능 특성을 더욱 정확하게 파악할 수 있습니다.