2
我有一個類「工人」與條目方法爲什麼我的方法沒有被編譯器找到?
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");
這不會編譯,編譯器報告的參數委託(在我的子類)不能被發現。 我可以通過在我的Worker類中聲明一個虛擬的虛擬運行(對象)方法來解決這個問題,這樣我的TestWorker.Run(object)覆蓋它,但恕我直言,這是一個不雅的解決方案,爲什麼我必須這樣做呢?它是一個編譯器特異性,還是我在邏輯上做了一些不正確的事情?
我嘗試更改聲明,但在構建解決方案時反覆得到相同的錯誤 - 因此我的問題。但是我發現,通過明確清理項目並重建所有項目,錯誤消失了。也許這是VS2008的怪癖。 –
@NeilHaughton:你爲什麼不在提問中提到*?它應該沒問題 - 請展示一個簡短但完整的程序來展示問題。我會同時拿出一個顯示它正在工作:) –
@NeilHaughton:鑑於你現在已經接受了答案,大概你已經發現它的工作,畢竟,你會有一個不同的問題? –