는 CharList, 나는 개인 목록을 가지고 (목록 < 목록 < newChar에 > >)와 인덱서의 몇 :사용자 지정 인덱서를 "에 할당 할 수 없습니다"? 클래스에서
테스트 코드에서private List<List<NewChar>> _charList;
// ...
public NewChar this[Int32 inner, Int32 outer]
{
get
{
if (inner < 0 || inner >= _charList.Count ||
outer < 0 || outer >= _charList[inner].Count)
throw new ArgumentException("NewCharList indexer[,]: Invalid index!");
return _charList[inner][outer];
}
}
public List<NewChar> this[Int32 index]
{
get
{
if (index < 0 || index > MaxCharListIndex)
throw new ArgumentException("NewCharList indexer[]: Invalid index");
List<NewChar> ret = new List<NewChar>(_charList[index].Count);
for (int i = 0; i < _charList[index].Count; i++)
ret.Add(_charList[index][i]);
return ret;
}
}
에게 (다른 클래스), 나는
를 호출하는 경우charList[0] = null;
나는 컴파일러 오류 "건물 또는 인덱서 xxx는 할당 할 수 없습니다 - 그것은 읽기 전용"을 얻을,하지만 난
charList[0][0] = new NewChar(22,22);
를 호출하는 경우
값이 변경되지 않지만 컴파일러에서 허용합니다. 두 번째 이유는 무엇입니까? 나는 내 인생을 위해 그것을 이해할 수 없다. 그리고 그것은 나를 미치게하고있다! 당신이 쓸 때
죄송합니다 - 이것은 내가 원하는 행동입니다. (색인 작성자는이 목록을 변경하지 않습니다.) - 그것은 두 번째 것이고 그 이유는 궁금합니다. – Richard