C#에서 Array.IsReadOnly 속성은 해당 배열이 읽기 전용(read-only) 상태인지 여부를 나타내는 값을 반환합니다. 이 속성이 true를 반환하면 배열의 요소를 수정할 수 없으며, false를 반환하면 요소를 자유롭게 변경할 수 있습니다.
배열 값 설정하기
먼저 Array.CreateInstance 메서드를 사용하여 문자열 타입의 배열을 생성하고 값을 설정해 보겠습니다.
Array arr = Array.CreateInstance(typeof(String), 3);
arr.SetValue("Electronics", 0);
arr.SetValue("Clothing", 1);IsReadOnly 속성 사용하기
이제 IsReadOnly 속성을 사용하여 해당 배열이 읽기 전용인지 확인할 수 있습니다. 만약 배열이 읽기 전용이라면 요소를 추가하거나 수정하는 것이 불가능합니다.
arr.IsReadOnly
전체 예제 코드
다음은 Array.IsReadOnly 속성의 사용법을 보여주는 완전한 예제입니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace lower {
class Program {
static void Main(string[] args) {
Array arr = Array.CreateInstance(typeof(String), 3);
arr.SetValue("Electronics", 0);
arr.SetValue("Clothing", 1);
Console.WriteLine("Lower Bound: {0}", arr.GetLowerBound(0).ToString());
Console.WriteLine("isReadOnly: {0}", arr.IsReadOnly.ToString());
Console.ReadLine();
}
}
}실행 결과
Lower Bound: 0 isReadOnly: False
정리
위 실행 결과에서 볼 수 있듯이, 일반적인 배열은 기본적으로 읽기 전용이 아니므로 IsReadOnly 속성이 False를 반환합니다. 참고로 Array.AsReadOnly() 메서드로 감싼 배열이나 ReadOnlyCollection<T>처럼 명시적으로 읽기 전용으로 선언된 컬렉션의 경우에는 이 속성이 True를 반환합니다. 따라서 코드에서 배열을 수정하기 전에 IsReadOnly 속성을 검사하면, 읽기 전용 배열에 대한 의도치 않은 변경 시도를 사전에 방지할 수 있어 안정적인 프로그램 작성에 도움이 됩니다.