我有这段代码(好吧,类似的东西)。
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 delegate type .它基本上就是您所拥有的:一个通用的返回 void 的委托(delegate)类型。
关于c# - 使用通用回调是一种不好的形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12199290/