代码之家  ›  专栏  ›  技术社区  ›  rerun

对于C 4.0中的匿名函数,我为什么不能直接定义委托呢?

  •  2
  • rerun  · 技术社区  · 14 年前

    让委托具有保留的定义类型有什么好处?

    例如,在C语言中,如果我想定义一个函数,它接受一个指向我可以简单定义的函数的指针

    void F(bool (*pFn)(int));
    

    在C中,如果在定义上述函数之前必须在C中创建typedef,则必须采取额外的步骤,首先定义类似的委托类型。

    delegate bool del(int s);
    void F(del d){...}
    

    我觉得C风格不够清晰和灵活。

    A:我不知道这在C语言中是可行的吗?#
    B:通过引入C类型声明系统的复杂性,这是否是一个糟糕的语言特性?


    让我澄清一下,我知道Fucn是可用的,我想知道是否有一种方法可以定义一个任意的委托。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Josh    14 年前

    Func 在.NET 3.5中,最多可以有4个参数和1个返回值。 Func 在.NET 4中,最多可以有16个参数和1个返回值。如果你需要的不止这些,你可能需要一台量子计算机。

    除返回值外,.NET 3.5和.NET 4中的操作也具有相同的限制。

        2
  •  3
  •   Gabe Timothy Khouri    14 年前

    这个怎么样?

    void F(Func<int, bool> d){...}