Вы ищете делегата .
public delegate void SomeMethodDelegate();
public void DoSomething()
{
// Do something special
}
public void UseDoSomething(SomeMethodDelegate d)
{
d();
}
Использование:
UseDoSomething(DoSomething);
Или используя лямбда-синтаксис (если DoSomething
был Hello World):
UseDoSomething(() => Console.WriteLine("Hello World"));
Для делегатов также доступен сокращенный синтаксис в виде Action
и Func
типов:
public void UseDoSomething(Action d)
И если вам нужно вернуть значение от вашего делегата (например, int
в моем примере), вы можете использовать:
public void UseDoSomething2(Func<int> d)
ПРИМЕЧАНИЕ: Действие и Func обеспечивают общие перегрузки, которые позволяют передавать параметры.