C#语法糖非常多,语法糖属于在编译器级别实现而在语法级别大大简化以提高编写效率简化逻辑的人性化举措,语法糖的实现在也不会出现显著的性能损耗,值得注意的是各类OOP语言都在互相借鉴彼此的优秀设计,例如C#中lambda表达式出现较早,而java也在2014年的java8版本引入lambda表达式,可见互相借鉴是广泛存在的。
1.匿名类型
static void Main(string[] args)
{
var anonymity = new
{
FirstName = "wei",
LastName = "yuqiao"
};
//生成一个包含FistName、LastName属性的对象,匿名类型会根据对象属性自动判断类型,但需要初始化
//若两个匿名类型成员类型逻辑上一致,则可以进行类型赋值
var simplify = new
{
FirstName = anonymity.FirstName,
LastName = anonymity.LastName
//anonymity.LastName
};
//简化初始器,可以将一个已经实例化的对象属性投影到新对象上,可以使用上面两种办法,一般是直接投影实例化的对象属性即可。
}
2.委托
讨论lambda表达式前先简单的看下委托,在参数是委托类型时就支持lambda表达式实现