当同样的事情只需调用方法就可以完成时,为什么要使用回调呢

本文关键字:为什么 完成时 回调 就可以 方法 调用 | 更新日期: 2023-09-27 17:59:39

我知道回调本身就是方法,并且作为参数传递给另一个方法。

但是,为什么我们需要将方法作为参数传递,而只需调用该方法就可以直接传递呢。

例如:

private static void TakeAction(Action<String> action)
{
}
TakeAction((s) => { Console.WriteLine(s); });

同样的事情也可以通过做来完成:

private static void TakeAction()
{
    Fo1();
}
private static void Fo1(string s)
{
    Console.WriteLine(s);
}

为什么要回电话?它解决了什么具体问题?

当同样的事情只需调用方法就可以完成时,为什么要使用回调呢

您有一个对Fo1方法的编译时引用,所以您只调用它。如果您在编译时不知道该方法怎么办?你怎么称呼它?这就是为什么代理人很有用。

你能想象没有委托的"Linq"吗(或者你说的回调)。没有代表林克什么都不是。怎样Net框架可以调用您的方法(在您自己的程序集中定义)。?

好吧,有办法。我们可以使用接口,但这与java的方法没有什么不同。这是c#的方法。

带代表

通过定义委托,您就是在对类的用户说"请随意将任何与此签名匹配的方法放在此处每次我的代表被称为""时,它都会被调用

我认为这足以让你知道Why to use call backs when same thing can be done just by calling the method

委托(您称之为回调)是一种类型,它描述了它们可以在变量中存储什么样的方法。这为您提供了一个选项,可以动态选择程序使用的方法,而无需使用整个命令模式(其中您必须定义一个类,该类使用您选择的方法实现接口)。