zoukankan      html  css  js  c++  java
  • c#语法糖代码——自动属性, 匿名类型,对象与集合初始化器,扩展方法

    1 自动属性
    public class Student
    {
    public int ID{get;set;}
    }

    2 隐式类型(类型推断)
    关键字 var(在编译的时候已经确定变量的类型了,编译时把推断的类型替换掉var。并不是弱类型)
    作用:只是方便程序员
    var i=5;//int
    注意:
    不能作为类成员的类型
    不能作为方法的参数
    不能作为返回值
    (只能作为局部变量的类型推断)

    3 匿名类型
    var p1=new {Id=1,Name="coco",Age=22};匿名类中的成员是只读的seal类型的
    数组
    var intArray=new []{2,3,4,5};
    var atrArray=new []{"Hellp","coco"};
    var objArray=new[]{new {Name="coco",Age=12},new {Name="bingbing",Age=95}};
    var a=intArray[0];

    4
    对象与集合初始化器
    Student stu=new Student(){Id=1,Name="coco",Age=99}//更方便给对象赋值
    集合初始化器
    List<int>num=new List<int>(){0,1,23,4};
    list<student>stus=new list<student>(){new student{Id=1,Name="coco",Age=123},new student{Id=2,Name="kkk",Age=17}};

    5 扩展方法(linq中用的很多)
    扩展方法主要是在类中另写一个静态的方法,用户不用更改类就可以直接点出来。一般不会用到
    声明扩展方法的步骤:
    类必须是static,方法是static,第一个参数是扩展的对象,前面个标注的是this(this 参数类型 参数名)。
    使用扩展方法必须保证扩展方法已经在当前代码中(即要有相同的命名空间)

    扩展方法不属于扩展类的成员,也访问不到要扩展的类的私有变量
    eg:
    //定义
    public static class StingExt
    {
    pulic static bool isEmail(this string str)
    {
    return Regex.IsMatch(str,@"^w+@w+.w+$");
    }
    }
    //使用
    string email="zxh@itcast.cn"
    cw{emial.IsEmail();}

  • 相关阅读:
    docker常用命令
    根据另一个表数据更新到指定表
    java中支持前端jq通过ajax提交(post)json内容到控制器
    VS2017用正则表达式替换多行代码
    net core中动态给log4net添加日志类型
    MySqlBulkLoader设置Columns时要注意的地方
    部署NETCORE在LINUX上报Error -99 EADDRNOTAVAIL address not available
    select 下拉框 设置值
    tp添加分页
    js异步获取数据的问题
  • 原文地址:https://www.cnblogs.com/lv-sally/p/4729213.html
Copyright © 2011-2022 走看看