2009-09-03 6 views
18

기본 클래스에서 마우스 이벤트를 처리 할 때 발생하는 문제를 해결하고 있습니다. 중단 점이 마우스 이벤트 문제를 해결하는 데 실제로 잘 작동하지 않기 때문에 이벤트 핸들러에 디버그 출력을 추가하려고합니다. 그러나 기본 클래스의 이벤트 처리 코드는 다수의 파생 클래스에 의해 공유되고 특정 클래스 만 문제를 나타 내기 때문에 실제 파생 클래스의 이름을 디버그 정보에 포함시키는 것이 중요합니다.C# 내부 클래스에서 파생 된 형식 이름 가져 오기

this.GetType().Name을 사용해 보았지만 base 클래스의 유형을 반환하기 만하면됩니다. 물론 클래스를 수정하고 파생 클래스 type을 저장할 수있는 기본 클래스 생성자에 전달할 수는 있지만 이는 일시적으로 필요한 것만을위한 많은 변경 사항입니다. 기본 클래스 내에서 파생 클래스의 유형을 가져 오는 간단한 방법이 있습니까?

답변

31

this.GetType().Name. 파생 클래스가 없을 수도 있습니다. .

8

this.GetType().Name 항상 조건부 방식으로 Debugger.Break()를 사용하여, 현재 실행 형,하지가로 작성된 코드 당신은 비록 중단 점을 에뮬레이트 할 수있는 유형의 이름을 반환 :

if (this.GetType().Name == "Problematic type") 
    System.Diagnostics.Debugger.Break(); 
1

를 제기 이벤트의 경우 실제 보낸 사람을 보낸 사람 속성으로 전달해야합니다. 수신 클래스의 보낸 사람 개체는 이벤트를 발생시킨 자식 클래스를 올바르게 가리켜 야합니다.

관련 문제