C# 构造函数参数命名,以便在传入匿名方法时更清晰
我对将匿名方法传递到委托参数时代码的可读性感兴趣:C# 构造函数参数命名,以便在传入匿名方法时更清晰,c#,delegates,readability,anonymous-methods,named-parameters,C#,Delegates,Readability,Anonymous Methods,Named Parameters,我对将匿名方法传递到委托参数时代码的可读性感兴趣: var touchListener = new TouchListener( down:(v, e) => { //Handle the down event }, up:(v, e) => {
var touchListener = new TouchListener(
down:(v, e) =>
{
//Handle the down event
},
up:(v, e) =>
{
//Handle the up event
});
正如您所看到的,我对参数进行了向下和向上命名,因此这些匿名方法的作用更加明显
为了清晰起见,这里是TouchListener类(它针对MonoDroid工作,但这在这里并不重要):
也许我的方法是错误的,我过度使用匿名方法?但是,它节省了大量代码。从Javascript/jQuery的角度来看,这是非常清晰的代码;即使没有命名的参数。丢弃匿名函数正是处理事件的方式 然而,从C#的角度来看,这是相当不清楚的。(几乎?)没有一个.NET库使用匿名函数进行事件处理。所以省去你自己的麻烦,用真实的事件来解决这个问题
var touchListener = new TouchListener();
touchListener.OnTouchDown += (v,e) => Console.WriteLine("Hehe, I said touchdown");
touchListener.OnTouchUp += (v,e) => Console.WriteLine("Mweh");
有具体问题吗?对不起,是的。我是否已经进入了某种模式,而这种模式不会提高代码的可读性?我通常不喜欢命名参数,但它似乎有助于本例的可读性,你认为这是正确的吗?我刚刚得出了与事件完全相同的结论,它们可能是触地和触地-不“在”伟大的一点,简,谢谢。能从不同的角度来看待问题真是太好了,我认为你是对的。我最近做了太多jQuery,忘记了在c中使用的明显方法#
var touchListener = new TouchListener();
touchListener.OnTouchDown += (v,e) => Console.WriteLine("Hehe, I said touchdown");
touchListener.OnTouchUp += (v,e) => Console.WriteLine("Mweh");