, , . , Action Action<YourClass> this. :
class YourClass
{
private bool workFinished;
public void DoWork()
{
MyMethod(instance => instance.Callback1Work(),
instance => instance.workFinished = false);
}
private void MyMethod(Action<YourClass> callback1,
Action<YourClass> callback2)
{
callback1(this);
callback2(this);
}
private void Callback1Work()
{
}
}
DoWork . .
, . :
class YourClass
{
private static readonly Action<YourClass> Callback1 = x => x.Callback1Work();
private static readonly Action<YourClass> Callback2 = x => x.workFinished = false;
private bool workFinished;
public void DoWork()
{
MyMethod(Callback1, Callback2);
}
... code as before ...
}
, .
Action, - , DoWork , :
class YourClass
{
private readonly Action foo;
private readonly Action bar;
private bool workFinished;
public YourClass()
{
foo = Callback1Work;
bar = () => workFinished = false;
}
public void DoWork()
{
MyMethod(foo, bar);
}
public void MyMethod(Action callback1, Action callback2)
{
...
}
private void Callback1Work()
{
...
}
}