Чудя се защо това работи?
Например имам някакъв клас изпълнител, който изглежда така:
public class Executor
{
public void Execute(Action action)
{
action();
}
}
Сега имам някакъв клас, който трябва да бъде изпълнен, който изглежда така:
public class NeedToBeExecuted
{
public void Invoke()
{
Executor executor = new Executor();
executor.Execute(DoSomething);
}
private void DoSomething()
{
// do stuff private
}
}
Въпросът ми е защо това е работа, като предавам частен метод на друг клас?
Това не е ли проблем с капсулирането?
Action
. Въпреки че не е съвсем същото, помислете дали предавате private масив или някакъв клас като параметър на друг метод. Няма нищо лошо в това.DoSomething
също ще има достъп до личните променливи отNeedToBeExecuted
, които използва поради затваряния. - person Oscar Mederos   schedule 23.03.2013