在将匿名方法传递给委托参数时,我对代码的可读性感兴趣:
var touchListener = new TouchListener(
down:(v, e) =>
{
//Handle the down event
},
up:(v, e) =>
{
//Handle the up event
});
正如你所看到的,我已经将参数命名为 down 和 up,这样这些匿名方法的作用就更明显了。
为了清楚起见,这里是 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;
}
}
也许我的方法是错误的,我过度使用匿名方法?但是它节省了很多代码。