我有這段代碼(好吧,類似的東西)。使用泛型回調是不好的形式嗎?
private delegate void GenericCallback<T>(T Info);
private void DoWork()
{
System.Threading.Thread Worker = new System.Threading.Thread(
delegate()
{
TestMethod(TestMethodCallback<string>);
}
);
Worker.Start();
}
private void TestMethod(GenericCallback<string> Callback)
{
System.Threading.Thread.Sleep(1000);
if(Callback != null)
{
Callback("Complete");
}
}
private void TestMethod(GenericCallback<int> Callback)
{
System.Threading.Thread.Sleep(1000);
if(Callback != null)
{
Callback(25);
}
}
private void TestMethodCallback<T>(T Info)
{
MessageBox.Show(Info.ToString());
}
,讓我打電話給不同版本的基於參數的類型TestMethod
,同時也讓我有一個回調方法。
這是一種糟糕的形式,還是一種公認的做法?
如果我想使用這樣的委託,該怎麼辦?如果我想使用這樣的委託,那麼我可以使用Action? – Tester101
@ Tester101然後你需要一個'Action'。 –
我認爲你必須使用'Action',但我對委託子類型並不熟悉。 –