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 |