跨类/文件传递委托方法

本文关键字:方法 文件 跨类 | 更新日期: 2023-09-27 18:29:17

我在另一个文件的类中有一个方法,我想采用一个动态方法。我在协商设置时遇到了一些困难。任何帮助都将不胜感激,谢谢!

例如。。。

文件#1:

class DoSomethingClass
{
    // define delegate
    public delegate void DelegateMethod();
    public void Main()
    {
        DelegateMethod d = Func1;       
        AnotherClass.CallsDynamicMethod("Test1", d);
        d = Func2;
        AnotherClass.CallsDynamicMethod("Test2", d);
        // will this work?
        // AnotherClass.CallsDynamicMethod("Test3", DoSomethingClass.instance.Func3);
    }

    // candidate methods for delegation
    void Func1()
    {   Console.WriteLine("calling Func1"); }
    void Func2()
    {   Console.WriteLine("calling Func2"); }   
    public void Func3()
    {   Console.WriteLine("calling Func3"); }   
}    


文件#2:

class AnotherClass
{   
    public static void CallsDynamicMethod(string words, DelegateMethod dynamicMethod)
    {
        Console.WriteLine("this is a " + words + " to call...");
        dynamicMethod();
    }
}

跨类/文件传递委托方法

希望这能回答您的问题

 class Program
{
    static void Method()
    {
        Console.WriteLine("Method");
    }
    static void Main(string[] args)
    {
        Action a = Method;
        MyClass.SomeMethod(a);
        MyClass.SomeMethod(Method);
        Console.ReadLine();
    }
}
class MyClass
{
    public static void SomeMethod(Action del)
    {
        del();
    }
}