본문 바로가기
Language/C#

[C#/WPF] StackOverflowException 발생

by 종승 2023. 3. 23.
1. 실행시켰을 때 System.StackOverflowException: System.StackOverflowException 형식의 예외가 Throw 되었습니다. 라는 내용의 에러가 발생함

 

Stack Overflow 에러는 일반적으로 무한 재귀 호출과 같은 무한 루프에서 발생하는 문제라고 함

 

추가한 코드들을 하나씩 주석처리 하면서 문제가 발생한 부분을 찾아보았음

 

클래스를 생성하고 부모 클래스를 지정하려고 " : MainWindow " 를 클래스 이름 뒤에 붙였는데 이 부분이 문제인 것 같음

 

MainWindow 클래스 내부에서 또 다른 클래스를 상속하고 있을 경우(MainWindow의 부모클래스가 있을 경우), 이런 다중 상속 구조에서 메서드 이름 충돌 등으로 무한루프가 발생할 수 있다고 함

 

자식 클래스가 부모 클래스를 상속받으면, 자식 클래스의 생성자가 호출되기 전에 부모 클래스의 기본 생성자가 먼저 호출된다고 함, 자식 클래스가 부모 클래스의 멤버 변수 및 메서드를 사용할 수 있도록 초기화되어야 하기 때문이라고 함

 

부모 클래스의 생성자가 호출된 후 자식 클래스의 생성자고 호출되고 자식클래스는 부모클래스를 상속받기 때문에 또 부모 클래스의 생성자가 호출되고를 반복해서 생기는 문제인 것 같다.

 

'Language > C#' 카테고리의 다른 글

[C#] RS 232 종결자 설정  (0) 2023.03.30
[C#/WPF] MouseDown Event 동작 안 함  (0) 2023.03.24
[C#/WPF] Border를 Button처럼 사용하기  (0) 2023.03.23
[C#/WPF] IsMouseCaptured  (0) 2023.03.20
[C#/WPF] 시리얼 통신 중 메모리 누수?  (0) 2023.03.20