2012. 2. 22. 17:25

mvvm패턴 샘플을 인터넷에서 찾아 만드는데 ICommand를 상속하여 오버라이드(재정의, ovrride)를 하려고 하니 다음과 같은 에러 매시지가 나옵니다.


재정의할 적절한 메서드를 찾을 수 없습니다(no suitable method found to override)

MSDN을 뒤저보니 "컴파일러 오류 CS0115"라는 것이 있군요.
(참고 : MSDN - 컴파일러 오류 CS0115)

설명의 뜻은 베이스로 지정안되있는 녀석을 오버라이드를 시도했거나 오바라이드가 아닌 오버로드를 해야 하는 녀석(파라매타가 다르다던가 이름이 다르다던가) 라는 말입니다...

결국 해결법은
1. 올바른 베이스를 지정한다.
2. override 키워드를 뺀다.(오버라이드가 아닌 오버로드가 됨)
입니다.

그런데 ICommand를 보면 해당 메소드가 정상적으로 있습니다.

public interface ICommand
{
	event EventHandler CanExecuteChanged;
	bool CanExecute(object parameter);
	void Execute(object parameter);
}


아마도 ICommand의 내용이 비가상 맴버여서 그런게 아닌가라는 생각을 하고 있습니다.
(참고 : MSDN - override(C# 참조))

생각해보면 ICommand는 인터페이스라 오버라이딩이 아니고 해당매소드의 존제가 중요하므로 그런걸지도 모르겠습니다.
만약 오버라이드하려던 메소드가 정의되있지 않다면 에러가 발생할테니 오버라이드키워드를 삭제하고 사용했을때 문제가 없다는건 정상적인 코드라는 의미도 됩니다 ㅎㅎㅎ


결국 원인 불명-_-;

댓글 작성

이름
패스워드
홈페이지
비밀글