如何将带有对象引用的函数传递给另一个函数以执行

迈克尔·埃尔

我想这是我试图做的一件相当简单的事情,但我可能在这里遗漏了一些东西。

说我有几个功能,所有做的几乎同样的事情,除了一条线,这绝对要求沿着这些线路,其中,一个“基地”的功能什么的ONE不同的线路将被传递到它并执行,其余的代码将继续它的流程。

这是我的示例:

假设我有一些函数可以对Car对象执行操作并验证操作是否成功:

public void SoundHorn()
{
            var response = _car.Horn(1000);
            if(response.Status != 0)
            {
                throw new Exception("Operation failed!");
            }
}

public void TurnOnHazardLights()
{
            var response = _car.ToggleHazards(true);
            if(response.Status != 0)
            {
                throw new Exception("Operation failed!");
            }
}

如您所见,唯一的区别是要执行的实际功能,所有功能的验证都是相同的。

我最终想要的是具有这些功能的“基本”功能:

private void PerformOperation(??? operation)
{
            var response = operation.Invoke();
            if(response.Status != 0)
            {
                throw new Exception("Operation failed!");
            }
}

因此,其他功能如下所示:

public void TurnOnHazarLights()
    {
                PerformOperation(_car.togglehazards);
    }

我知道代理,动作和功能,似乎它们需要我传递函数才能运行自身,而没有对象引用,因此我无法使用以上语法。

我想我错过了上面提到的这些类之一的用法。

你能给我启发一下吗?

谢谢!

清扫器

代表确实是您所需要的。在这种情况下,由于所有操作都对一个Car对象进行操作并返回某些内容,因此您需要一个Func<Car, Something>而其他返回Something的类型是Horn

private void PerformOperation(Func<Car, Something> operation)
{
        var response = operation.Invoke(_car);
        if(response.Status != 0)
        {
            throw new Exception("Operation failed!");
        }
}

您可以这样编写两个专门的操作:

public void SoundHorn()
{
    PerformOperation(car => car.Horn(1000));
}

public void TurnOnHazardLights()
{
    PerformOperation(car => car.ToggleHazards(true));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Lua-如何将对象的函数作为参数传递给另一个函数

来自分类Dev

如何将函数输出传递给另一个函数

来自分类Dev

如何将一个函数传递给另一个函数以创建动作侦听器

来自分类Dev

带有args的Swift函数...传递给带有args的另一个函数

来自分类Dev

Python MYSQL tupple问题。如何将参数传递给另一个类中执行查询的函数

来自分类Dev

如何将可变函数参数作为参数传递给另一个函数?

来自分类Dev

如何将带有2个参数的函数作为参数传递给函数?

来自分类Dev

jQuery如何将对象传递给另一个函数

来自分类Dev

如何将Js函数数组传递给另一个Js函数?

来自分类Dev

如何将带有参数作为参数的函数传递给Python中的另一个函数?

来自分类Dev

如何将void函数传递给另一个void函数?

来自分类Dev

如何将编写的对象传递给另一个类的构造函数?

来自分类Dev

如何将tanh函数作为参数传递给另一个函数?

来自分类Dev

如何将带有另一个字符串枚举的键的枚举传递给接受字符串的函数?

来自分类Dev

如果有对象被创建为另一个类的数据成员,如何将值传递给参数化的构造函数?

来自分类Dev

Lua-如何将对象的函数作为参数传递给另一个函数

来自分类Dev

如何将一个函数的值传递给另一个函数?

来自分类Dev

如何执行将细节作为参数传递给另一个函数的函数

来自分类Dev

C ++:如何将一个对象传递给另一个对象构造函数?

来自分类Dev

如何将函数作为参数传递给另一个函数?

来自分类Dev

如何将引用从一个对象内部传递到另一个对象的构造函数

来自分类Dev

如何将对象的动态数组传递给另一个类的参数化构造函数?

来自分类Dev

如何将泛型函数作为参数传递给另一个函数?

来自分类Dev

如何将另一个函数作为变量传递给R中的函数?

来自分类Dev

如何将函数的所有参数传递给另一个命令?

来自分类Dev

如何将命名参数传递给另一个函数需要的函数?

来自分类Dev

如何将带有其他对象数组的对象从一个片段传递到另一个片段?

来自分类Dev

如何将参数传递给作为另一个函数参数的函数

来自分类Dev

将带有自动参数的 lambda 传递给另一个函数是否合法

Related 相关文章

  1. 1

    Lua-如何将对象的函数作为参数传递给另一个函数

  2. 2

    如何将函数输出传递给另一个函数

  3. 3

    如何将一个函数传递给另一个函数以创建动作侦听器

  4. 4

    带有args的Swift函数...传递给带有args的另一个函数

  5. 5

    Python MYSQL tupple问题。如何将参数传递给另一个类中执行查询的函数

  6. 6

    如何将可变函数参数作为参数传递给另一个函数?

  7. 7

    如何将带有2个参数的函数作为参数传递给函数?

  8. 8

    jQuery如何将对象传递给另一个函数

  9. 9

    如何将Js函数数组传递给另一个Js函数?

  10. 10

    如何将带有参数作为参数的函数传递给Python中的另一个函数?

  11. 11

    如何将void函数传递给另一个void函数?

  12. 12

    如何将编写的对象传递给另一个类的构造函数?

  13. 13

    如何将tanh函数作为参数传递给另一个函数?

  14. 14

    如何将带有另一个字符串枚举的键的枚举传递给接受字符串的函数?

  15. 15

    如果有对象被创建为另一个类的数据成员,如何将值传递给参数化的构造函数?

  16. 16

    Lua-如何将对象的函数作为参数传递给另一个函数

  17. 17

    如何将一个函数的值传递给另一个函数?

  18. 18

    如何执行将细节作为参数传递给另一个函数的函数

  19. 19

    C ++:如何将一个对象传递给另一个对象构造函数?

  20. 20

    如何将函数作为参数传递给另一个函数?

  21. 21

    如何将引用从一个对象内部传递到另一个对象的构造函数

  22. 22

    如何将对象的动态数组传递给另一个类的参数化构造函数?

  23. 23

    如何将泛型函数作为参数传递给另一个函数?

  24. 24

    如何将另一个函数作为变量传递给R中的函数?

  25. 25

    如何将函数的所有参数传递给另一个命令?

  26. 26

    如何将命名参数传递给另一个函数需要的函数?

  27. 27

    如何将带有其他对象数组的对象从一个片段传递到另一个片段?

  28. 28

    如何将参数传递给作为另一个函数参数的函数

  29. 29

    将带有自动参数的 lambda 传递给另一个函数是否合法

热门标签

归档