C#中签名类似方法的执行选择

作者:袖梨 2022-06-25

c#中签名类似方法的执行选择


c#中的赋值语句是有返回值的,等价于将赋值操作完成后,再将赋值号(=)左边返回(这就是为什么我们可以写y=x=1)这样的语句来初始化一系列的变量。第二点要说的就是在c#中,某些labmda表达式可以简写。如(t1,t2) => { return something; }可以简写为(t1,t2) => something;以及(t1,t2) => { dosomething; } 可以简写为 (t1,t2) => dosomething。那么我们再来看上文的lambda表达式,它可能是两个表达式的简写:(1) i => { i = 1; } 这个时候很明显它是一个action(注1),如果你不采用简写的话那么上面的例子毫无疑问会执行第一个test函数(因为不满足第二个函数的参数类型)。 (2) i => { return i = 1; } 这个时候明显它是一个func,同时也是一个func。在这种不明确的情况下,c#是如何选择执行函数的呢

static void main(string[] args)
{
     test(i => i = 1);
}

static void test(action action)
{
     action(1);
}

static void test(func func)
{
     func(1);
}

相关文章

精彩推荐