C#语法糖(Csharp Syntactic sugar)

本文详细介绍了C#中的语法糖,包括简化的Property、var关键字、问号演进、扩展方法等,并深入剖析了C#6.0的新特性,如自动属性默认初始化、Null条件运算符、静态类导入等功能,帮助开发者提高编码效率。
摘要由CSDN通过智能技术生成

目录

一、C#语法糖大汇总

1. 经过简化的Property
2. 经过两次变异的委托写法
3. 集合类的声明
4. 集合类各个项的操作
5. using == try finally
6. 可爱的var
7. 问号的演变
8. 类型实例化的语法糖
9. 传说中的扩展方法
10.使用匿名类

二、C#之6.0语法糖剖析

2.1 自动属性默认初始化
2.2 自动只读属性默认初始化
2.3 表达式为主体的函数
2.4 表达式为主体的属性(赋值)
2.5 静态类导入
2.6 Null条件运算符
2.7 字符串格式化
2.8 索引初始化
2.9 异常过滤器when
2.10 catch和finally代码块内的Await
2.11 nameof表达式
2.12 扩展方法
总结

 


一、C#语法糖大汇总

首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。这让java开发人员羡慕不已,呵呵。

1.  经过简化的Property

早些时候我们这样声明Property

private string _myName;
public string MyName
{
    get { return _myName; }
    set { _myName = value; }
}

千篇一律的这样声明,没有多大意义,于是C#的设计人员将这个千篇一律的工作交给了编译器帮我们做了,我们现在可以这样声明

public string MyName { get; set; }

当然他不会牺牲灵活性,我们可以单独给get或者set设定访问限制符,例如

public string MyName { get; protected internal set; }

2.  经过两次变异的委托写法

在.net 1.1时我们不得不声明方法后才在委托中使用,在.net 2.0之后我们可以使用匿名委托,他不单可以简化写法,还可以在匿名委托中访问范围内的变量;再后来拉姆达表达式来了,写法就更简便了。

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();
    }
}

3.  集合类的声明

//之前我们声明一个List并给list赋初始值,必须得这么写:
List<string> list = new List<string>();
list.Add("a一");
list.Add("b二");
list.Add("c三");

//现在不需要了,直接写就可以了
List<string> list = new List<string> {
   "def","OK"};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值