仿函数在C#中是否具有等价物?

是否有相当于C#中的Functors?

C#有Func ,委托和匿名方法,但不是所有指向方法的指针?

C ++ Functor是一个类,而不是指向方法的指针。

C#有Func <,>,委托和匿名方法, 但不是所有指向方法的指针?

不。甚至C#代理都是由编译器为您实现的类。 这些生成的类(用于委托)派生自MulticastDelegate ,而MulticastDelegate又派生自Delegate

简而言之,委托是编译器生成的类的语法糖。

lambdas(Func <>,Action <>)和委托(命名以及匿名)都是类。

如果你需要一个指向方法指针 (例如,将其传递给不安全的代码),你应该使用编组

 IntPtr pFunc = Marshal.GetFunctionPointerForDelegate(myDelegate);