C#에서 Hashtable의 IsFixedSize 속성이란?
C#의 Hashtable 클래스는 IsFixedSize 속성을 제공합니다. 이 속성은 해당 Hashtable이 고정 크기(fixed size)를 갖는지 여부를 나타내는 bool 값을 반환합니다.
- Hashtable의 크기가 고정되어 있으면
true를 반환합니다. - 요소를 자유롭게 추가하거나 제거할 수 있는 일반적인 Hashtable이라면
false를 반환합니다.
일반적으로 new Hashtable()로 생성한 컬렉션은 크기가 동적으로 조절되므로, 이 속성은 항상 false를 반환하게 됩니다. 반면 읽기 전용 래퍼(wrapper) 등으로 감싼 경우에는 true가 반환될 수 있습니다.
IsFixedSize 속성 사용 예제
다음 예제는 Hashtable에 요소를 추가한 후, IsFixedSize 속성으로 고정 크기 여부를 확인하는 방법을 보여줍니다.
using System;
using System.Collections;
namespace Demo {
class Program {
static void Main(string[] args) {
// Hashtable 컬렉션 생성
Hashtable ht = new Hashtable();
// 요소 추가
ht.Add("D01", "Finance");
ht.Add("D02", "HR");
ht.Add("D03", "Operations");
// 고정 크기 여부 확인
Console.WriteLine("IsFixedSize = " + ht.IsFixedSize);
Console.ReadKey();
}
}
}실행 결과
IsFixedSize = False
코드 설명
먼저 다음과 같이 Hashtable 컬렉션을 생성합니다.
Hashtable ht = new Hashtable();
그런 다음 Add() 메서드를 사용해 세 개의 부서 정보를 키-값 쌍으로 추가했습니다. 마지막으로 IsFixedSize 속성을 호출하여 이 컬렉션이 고정 크기를 갖는지 확인합니다.
ht.IsFixedSize
생성된 Hashtable은 동적으로 요소를 추가·삭제할 수 있으므로, 실행 결과는 False가 출력됩니다. 즉, 이 Hashtable은 고정된 크기를 갖지 않으며 필요에 따라 계속 확장될 수 있습니다.
정리
IsFixedSize 속성은 컬렉션의 용량 변경 가능 여부를 빠르게 확인할 때 유용합니다. 특히 외부에서 전달받은 Hashtable 객체가 수정 가능한 상태인지 검증해야 하는 상황에서 활용하면 코드의 안정성을 높일 수 있습니다.