-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
InvalidOperationException 에러에 대해 궁금한점
24.06.30 04:47 작성 24.06.30 04:47 수정 조회수 37
0
영상을 보고 난 후 이런 툴을 제 프로젝트에 적용시켜 혼자 만들어 보고 있었는데
이렇게 사용시에 foreach 문에서 InvalidOperationException이 발생 하였습니다. (foreach를 도는 중에는 원소 값을 건드리면 안되어 발생하는 에러)
영상 23분에 보면은 x버튼을 눌렀을 때 database에서 원소 값을 remove 시키는데 이 부분에선 발생하지 않던데 이건 무슨 차이 때문에 발생하지 않는건가요?
답변을 작성해보세요.
0
Developer G
지식공유자2024.06.30
수강해주셔서 감사합니다.
foreach문에서 Collection이 수정되자마자 해당 Error가 발생하는 것은 아니구요, 이번 index 작업이 끝나고 다음 index 조건 검사를 할 때 발생하게 됩니다. 그래서 Collection을 수정하고 이번 index 작업이 끝나기 전에 break로 foreach문을 빠져나가면 Erorr가 발생하지 않습니다.
강의 SkillSystemWindow Script를 보면 256번 줄에서
database.Remove(data);
로 data를 지운 뒤,
바로 아래 272번 줄에서
// data가 삭제되었다면 즉시 Database 목록을 그리는걸 멈추고 빠져나옴
if (data == null)
break;
data가 null이면 break로 빠져나갑니다.
감사합니다.
답변 1