List<T>
을 공개하지만 개인적으로 설정할 수 있도록하려면 어떻게해야합니까?목록 <T> 개인 설정으로 읽기 전용
이 작동하지 않습니다
public List<string> myList {readonly get; private set; }
을 당신이 할 경우에도 :
public List<string> myList {get; private set; }
당신은 여전히이 작업을 수행 할 수 있습니다
myList.Add("TEST"); //This should not be allowed
을 당신이 할 수 같아요
public List<string> myList {get{ return otherList;}}
private List<string> otherList {get;set;}
,210
좋은 점에 원치 않는 캐스팅을 방지하려는 경우. 많은 사람들이 참조 유형 개념을 놓치고 참조를 읽기 전용으로 설정합니다. +1 –
IList으로 ReadOnlyCollection을 사용하는 것이 더 좋습니다. –
Joe
+1. 공용 System.Collections.ObjectModel.ReadOnlyCollection을 반환하면 컴파일 타임 검사를 제공하기 때문에 공용 속성에서 "개인 집합"을 사용하는 것보다 낫습니다. 즉, 읽기 전용 컬렉션에서 Add() 또는 RemoveAt()를 사용하면 컴파일 오류가 발생하지만 "개인 집합"은 그렇지 않습니다. – MikeTeeVee