我该如何创建回调

2 c# callback

编写回调的最佳方法是什么?我只需要调用一个具有void(string,int)的sig的函数; 这需要调用一个类,因为我有成员objs,我需要处理.什么是写这个的最好方法?在C中,我会传递一个func指针和一个void*obj.我不喜欢这个,我怀疑在C#中有更好的方法吗?

Sam*_*uel 16

C#3.0引入了lambdas,它允许你放弃回调(或委托)签名的声明.它允许您执行以下操作:

static void GiveMeTheDate(Action<int, string> action)
{
  var now = DateTime.Now;
  action(now.Day, now.ToString("MMMM"));
}

GiveMeTheDate((day, month) => Console.WriteLine("Day: {0}, Month: {1}", day, month));
// prints "Day: 3, Month: April"
Run Code Online (Sandbox Code Playgroud)

  • 我投票了。“权力”腐败了,甚至我们当中有些人显然也很讨厌。 (2认同)

Ree*_*sey 5

在 C# 中处理(或替换需要)回调的标准方法是使用委托或事件。 有关详细信息,请参阅本教程。

这提供了一种非常强大、干净的回调处理方式。