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

C# Hashtable 클래스의 IsReadOnly 속성 완벽 가이드

C#의 Hashtable 클래스에서 제공하는 IsReadOnly 속성은 해당 Hashtable이 읽기 전용인지 여부를 나타내는 값을 반환합니다. 이 속성을 활용하면 컬렉션에 대한 수정 작업이 가능한 상태인지 사전에 확인할 수 있어, 런타임 오류를 방지하는 데 유용합니다.

IsReadOnly 속성의 기본 개념

IsReadOnly 속성은 bool 타입의 값을 반환하며, 다음과 같은 의미를 가집니다.

  • true: Hashtable이 읽기 전용이므로 요소 추가, 수정, 삭제가 불가능합니다.
  • false: Hashtable이 읽기 전용이 아니므로 요소를 자유롭게 조작할 수 있습니다.

일반적으로 코드에서 직접 생성한 Hashtable은 읽기 전용이 아니므로 false가 반환됩니다. 반면, 읽기 전용 래퍼(Wrapper)로 감싼 경우에는 true가 반환됩니다.

예제 코드

using System;
using System.Collections;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            Hashtable ht = new Hashtable();
            ht.Add("One", "Amit");
            ht.Add("Two", "Aman");
            ht.Add("Three", "Raman");

            Console.WriteLine("IsReadOnly = " + ht.IsReadOnly);
            Console.ReadKey();
        }
    }
}

실행 결과

IsReadOnly = False

코드 설명

위 예제에서는 먼저 세 개의 요소를 가진 Hashtable을 생성했습니다.

ht.Add("One", "Amit");
ht.Add("Two", "Aman");
ht.Add("Three", "Raman");

각 키("One", "Two", "Three")에 해당하는 값("Amit", "Aman", "Raman")이 저장되어 있습니다. 이후 IsReadOnly 속성을 사용하여 Hashtable의 읽기 전용 여부를 확인했습니다.

Console.WriteLine("IsReadOnly = " + ht.IsReadOnly);

결과는 False로 출력됩니다. 이는 해당 Hashtable이 읽기 전용이 아니며, 필요에 따라 요소를 추가하거나 제거할 수 있음을 의미합니다.

활용 팁

IsReadOnly 속성은 데이터를 수정하기 전에 컬렉션의 상태를 검사하는 방어적 프로그래밍 기법으로 활용할 수 있습니다. 예를 들어, 외부에서 전달받은 Hashtable에 데이터를 추가하기 전에 IsReadOnly 값을 확인하면 NotSupportedException 예외 발생을 미리 차단할 수 있습니다.