Передача методов делегата через классы / файлы - PullRequest
0 голосов
/ 28 марта 2012

У меня есть метод в классе в другом файле, который я хочу использовать динамический метод.У меня возникли трудности с согласованием настроек.Любая помощь будет признательна, спасибо!

например ...

Файл № 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();
    }
}

1 Ответ

2 голосов
/ 28 марта 2012

Надеюсь, что это решит вашу проблему

 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...