小编Pja*_*obi的帖子

在C#中传递成员函数

大多数情况下,C#委托已将对象与成员函数一起存储起来非常方便.但有没有办法,存储 - 并作为参数传递 - 只有成员函数本身,就像C++中的旧指针指向成员函数一样?

如果描述不清楚,我给出一个自包含的例子.并且,是的,在示例中,传递成员函数的坚持是完全没有意义的,但我有更严肃的用途.

class Foo {
    public int i { get; set; }
    /* Can this be done?
    public static int Apply (Foo obj, ???? method, int j) {
        return obj.method (j);
    }
    */
    public static int ApplyHack (Foo obj, Func<int, int> method, int j) {
        return (int) method.Method.Invoke (obj, new object [] { j });
    }
    public static readonly Foo _ = new Foo (); // dummy object for ApplyHack

    public int Multiply (int j) { …
Run Code Online (Sandbox Code Playgroud)

c#

15
推荐指数
3
解决办法
7899
查看次数

标签 统计

c# ×1