Вызов метода 1 класса из 2 класса, не зная тип 1 класса

Сразу прошу прощение за формулировку в заголовке. Попробую объяснить на примере:

  1. Есть тестовый класс Test

В нем есть 2 метода:

public static void Start()
{
    Timer.TimerStart<string>(string s); //вызываем метод из 2 класса
}

public static void Finish(string s)
{
    Console.WriteLine(s);
}
  1. У нас есть 2 класс Timer

В нем есть статический метод TimerStart<T>(T s)

public static TimerStart<T>(T s)
{
    //вызываем метод из класса <x> с названием <y> с параметром <T>;
    //x.y(s);

    // В конкретном примере мы должны вызвать
    Main.Finish(s);
}

Что нужно реализовать:

  1. Вызываем метод Start() из 1 класса.

  2. В нем мы должны запустить статический метод TimerStart из 2 класса и передать ему в качестве параметра стринговую строку. Timer.TimerStart(string s)

  3. В метода TimerStart мы должны вызвать метод Finish(string s) из первого класса.

Возможно ли это сделать в C# при условии, что функция во 2 классе не обязательно должна вызывать функцию именно 1 класса? Это могут быть функции и других классов.

Фактически мне нужно из 1 класса передать ссылку на класс и функцию (с параметрами) во 2 класс. Пробовал реализовать это с помощью делегатов, но из-за малого опыта ничего не выходит.


Ответы (1 шт):

Автор решения: Alexander Petrov
public class Program
{
    static void Main(string[] args)
    {
        Test.Start();
    }
}

public class Test
{
    public static void Start()
    {
        Action action = () => Finish("Some string");
        Timer.TimerStart(action);
    }

    public static void Finish(string s)
    {
        Console.WriteLine(s);
    }
}

public class Timer
{
    public static void TimerStart(Action action)
    {
        action();
    }
}
→ Ссылка