语法糖

作者: ray_stronger | 来源:发表于2017-04-10 01:07 被阅读0次

a=(b>0)?b:-b;
当b>0时,a=b;当b不大于0时,a=-b;
这就是[条件表达式]。其实上面的意思就是把b的绝对值赋值给a。
Lamda表达式
对象方法(参数列表=>表达式或语句块)
Lambda表达式可以有多个参数、一个参数,或者没有参数。其参数类型可以隐式或者显式。示例代码如下:
(x, y) =>x * y //多参数,隐式类型=>表达式
x=>x * 5 //单参数, 隐式类型=>表达式
x=>{ return x * 5; } //单参数,隐式类型=>语句块
(int x) =>x * 5 //单参数,显式类型=>表达式
(int x) =>{ return x * 5; } //单参数,显式类型=>语句块
() =>Console.WriteLine() //无参数
上述格式都是Lambda表达式的合法格式,在编写Lambda表达式时,可以忽略参数的类型,因为编译器能够根据上下文直接推断参数的类型,示例代码如下。
(x, y) =>x + y //多参数,隐式类型=>表达式
例子

class MyClass
{
    public delegate void DoSomething(int a);
 
    //定义方法委托
    private void DoIt(int a) {
        Console.WriteLine(a);
    }
 
    private void HowtoDo(DoSomething doMethod,int a) {
        doMethod(a);
    }
 
    public static void Main(string[] args) {
        MyClass mc = new MyClass();
        //调用定义的方法委托
        mc.HowtoDo(new DoSomething(mc.DoIt), 10);
        int x = 10;
        //使用匿名委托
        mc.HowtoDo(delegate(int a){
            Console.WriteLine(a + x);
        },10);
 
        //使用lamda表达式
        mc.HowtoDo(a=>Console.WriteLine(a+x),10);
 
        Console.ReadLine();
    }
}

相关文章

网友评论

      本文标题:语法糖

      本文链接:https://www.haomeiwen.com/subject/mpnvottx.html