Меня интересует удобочитаемость моего кода при передаче анонимных методов в параметры делегата:
var touchListener = new TouchListener(
down:(v, e) =>
{
//Handle the down event
},
up:(v, e) =>
{
//Handle the up event
});
Как вы можете видеть, я назвал параметры «вниз» и «вверх», чтобы было более очевидно, что делают эти анонимные методы.
Вот класс TouchListener для ясности (он работает с MonoDroid, но это не важно здесь):
public class TouchListener : View.IOnTouchListener
{
public delegate void OnTouchAction(View v, MotionEvent e);
private OnTouchAction down;
private OnTouchAction up;
public TouchListener(OnTouchAction down, OnTouchAction up)
{
this.down = down;
this.up = up;
}
public bool OnTouch(View v, MotionEvent e)
{
switch (e.Action)
{
case MotionEventActions.Down:
this.down(v,e);
break;
case MotionEventActions.Up:
this.up(v,e);
break;
default:
break;
}
return true;
}
}
Возможно, мой подход неверен, и я злоупотребляю анонимными методами? Однако это экономит много кода.