• c# 3.0锐利体验(一)


    c# 3.0新特性
    a) 隐含类型局部变量
    b) 扩展方法
    c) 对象与集合初始化器uju自动出示
    d) 匿名类型
    e) Lambda表达式
    f) 查询表达式(LINQ)
    g) 表达式树

    a) 隐含类型局部变量
    var i=5;
    var h=23.45;
    var s="C Sharp";
    var intArr=new[]{1,2,3,4};
    var a=new[]{1,10,100,1000};
    1.var 为关键字,可理解为占位符,可以根据后面的初始化推断类型
    2.初始化语句必须为表达式,且编译时可推断类型
    3.var声明的仅限局部变量,亦可用于foreach,using等语句
    4.数组也可以作为隐含类型。

    Lambda表达式格式:
    (参数列表)=>表达式或者语句块

    可以有多个参数,一个参数,或者无参数。
    (x,y)=>x*y //多参数,隐式类型=>表达式
            x     =>x*10 //单参数,隐式类型=>表达式
           x      =>{return *10} //单参数,隐式类型=>语句块
    (int x)=>x*10 //单参数,显示类型=>表达式
    (int x)=>{return x*10} //单参数,显式类型=>语句块
      ()          =>Console.WriteLine() //无参数
     
    Lambda表达式L可以被转换为委托类型D,需要满足以下条件:
    L和D拥有相同的参数个数;
    L的参数类型要与D的参数类型相同。注意隐式类型要参与类型辨析;
    D的返回类型与L相同,无论L是表达式,还是语句块。

    delegate int myDelegate(int n);
    public class myClass
    {
          
    public static void Process(myDelegate md);
    }

    myClass.Pross(x
    =>x*10);
    以上代码编译器如何编译?
    myDelegate md 
    = new myDelegate(XXX);
    myClass.Process(md);
    public static int XXX(int n)
    {
          
    return x*10;
    }

  • 相关阅读:
    Openresty+redis实现灰度发布
    Nginx keepalived
    Nginx反向代理、负载均衡、动静分离、缓存、压缩、防盗链、跨域访问
    MYCAT扩容
    MYCAT全局序列
    MYCAT分库分表
    MySQL主从复制
    [redis] linux下集群篇(4) docker部署
    [nginx] CORS配置多域名
    [mysql] 归档工具pt-archiver,binlog格式由mixed变成row
  • 原文地址:https://www.cnblogs.com/jinweida/p/1209512.html
Copyright © 2020-2023  润新知