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

C# Array.IsReadOnly 속성이란? 배열이 읽기 전용인지 확인하는 방법

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 속성을 검사하면, 읽기 전용 배열에 대한 의도치 않은 변경 시도를 사전에 방지할 수 있어 안정적인 프로그램 작성에 도움이 됩니다.