나는 항목 방법컴파일러에서 내 메서드를 찾을 수없는 이유는 무엇입니까?
internal void Run()
{
//do stuff...
}
내가 테스트를 위해 서브 클래스 ("TestWorker : 근무을")가 함께 클래스 "노동자"가
internal void Run(object aParam)
{
//do something with aParam, then..
Run();
}
내가 테스트 응용 프로그램이 항목의 방법으로하는 새로운 스레드에서 TestWorker의 인스턴스를 시작
Worker worker;
Thread workerThread;
...
worker = new TestWorker();
workerThread = new Thread(new ParameterizedThreadStart(worker.Run));
workerThread.Start("something");
이 컴파일되지 않으며, 컴파일러는 매개 변수 대리인이 (내 서브 클래스)를 찾을 수 없음을보고합니다. 내 TestWorker.Run (개체)가 재정의하도록 내 가상 클래스 Run (개체) 메서드를 선언하여이 문제를 극복 할 수 있지만 IMHO는 비 숙련 된 솔루션이므로이 작업을 수행해야하는 이유는 무엇입니까? 그것은 컴파일러의 특질인가, 아니면 내가 논리적으로 잘못된 것을하고 있는가?
나는 선언을 변경하려고했지만 반복적으로 솔루션을 구축 할 때 동일한 오류가 발생합니다. 따라서 제 질문을 생각해보십시오. 그러나 프로젝트를 명시 적으로 정리하고 다시 빌드하면 오류가 사라진다는 것을 알게되었습니다. 어쩌면 그것은 VS2008 특질 일 것입니다. –
@NeilHaughton : 질문에 왜 * 언급하지 않았습니까? 괜찮을 것입니다 - 문제를 보여주는 짧지 만 완전한 * 프로그램을 보여주십시오. 내가 동시에 작동하는지 보여줄 것입니다. –
@NeilHaughton : 당신이 지금 대답을 받아 들였을 때, 아마 결국 그것이 작동한다는 것을 알았고 당신은 다른 문제를 겪었을 것입니다. –