Вызов метода 1 класса из 2 класса, не зная тип 1 класса
Сразу прошу прощение за формулировку в заголовке. Попробую объяснить на примере:
- Есть тестовый класс
Test
В нем есть 2 метода:
public static void Start()
{
Timer.TimerStart<string>(string s); //вызываем метод из 2 класса
}
public static void Finish(string s)
{
Console.WriteLine(s);
}
- У нас есть 2 класс
Timer
В нем есть статический метод TimerStart<T>(T s)
public static TimerStart<T>(T s)
{
//вызываем метод из класса <x> с названием <y> с параметром <T>;
//x.y(s);
// В конкретном примере мы должны вызвать
Main.Finish(s);
}
Что нужно реализовать:
Вызываем метод
Start()из 1 класса.В нем мы должны запустить статический метод TimerStart из 2 класса и передать ему в качестве параметра стринговую строку.
Timer.TimerStart(string s)В метода
TimerStartмы должны вызвать методFinish(string s)из первого класса.
Возможно ли это сделать в C# при условии, что функция во 2 классе не обязательно должна вызывать функцию именно 1 класса? Это могут быть функции и других классов.
Фактически мне нужно из 1 класса передать ссылку на класс и функцию (с параметрами) во 2 класс. Пробовал реализовать это с помощью делегатов, но из-за малого опыта ничего не выходит.
Ответы (1 шт):
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();
}
}