Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 构造函数参数命名,以便在传入匿名方法时更清晰_C#_Delegates_Readability_Anonymous Methods_Named Parameters - Fatal编程技术网

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");