2010-08-04 12 views

답변

9

Value 속성 게터와 세터는 무한 재귀 -이으로 변경 :

public T Value { get; set; } 
+0

+1 답변입니다. 조심하지 않으면 쉽게 실수 할 수 있습니다. –

+0

나는 컴파일러가 이들을 찾지 못한다고 싫어한다. –

+0

이것은이다 !!!! 정말 고맙습니다!!! 나머지 버그 코드를 디버깅 할 수 있습니다 =) – CatZilla

0

일반적으로 스택 오버플로는 사용자가 돌아 가지 않고 재귀한다는 것을 의미합니다. 그러나 나는 당신이 어디에서 그렇게하는지 보지 못합니다. 내가 할 수있는 몇 가지 전략적 장소에 Console.WriteLine 문을 삽입하고 어떤 라인을 실행하고 얼마나 자주 볼 수 있습니다. 예를 들어, 삽입 시작 부분과 내부 루프에 있습니다. 이렇게하면 조금 더 많은 정보를 얻을 수 있습니다.

2

이미 대답 (값/세트 수) 그러나 여기 팁입니다 :

VS.NET에서

눌러 Ctrl + Alt + E를 눌러 Exceptions 대화 상자를 엽니 다 (VS.NET에서 선택한 프로필에 따라 Debug-> Exceptions 아래에있을 수도 있음). 이렇게하면 전체 스택 풀기 및 프로그램이 궁극적으로 중단되는 것과는 대조적으로 특정 예외 유형이 발생하면 중단 될 수 있습니다.

"공용 언어 런타임 예외"의 경우 "처리 완료"확인란을 선택하고 확인을 누른 다음 프로그램을 실행하십시오. 프로그램 실행이 예외 시점에서 중단되므로 훨씬 더 분명하게 알 수 있습니다.

귀하의 경우 귀하의 재산에 따라 프로그램이 중단됩니다. 더 많이 보시려면 Call Stack wndow (Debug-> Windows-> Call Stack 또는 CTRL + ALT + C)를 열어 전체 스택을 보시면 속성이 그 안에있는 유일한 것임을 알 수 있습니다.