语法糖

天涯浪子 提交于 2019-12-30 03:41:54

语法糖 是计算机语言中的一种语法,语法糖并没有为计算机语言添加新的功能,而是对已有的功能进行了封装,提供给用户更好的编程方式和编码风格。

举例来说,C语言中的a[i] 表示*(a+i),在C#语言中,语法糖更多,比如下面的代码:

View Code
 1     public class Person 2     { 3         // Automticall Implemented Property (自动实现的属性) 4         public string Name { get; set; }  5         public int Age  { get; set; } 6     } 7  8     class Program 9     {10         static void Main()11         {12             // Object Initializer (对象初始化器)13             Person person1 = new Person { Name = "Andy", Age=24 }; 14             Person person2 = new Person { Name = "Bill", Age = 20 };15             Person person3 = new Person { Name = "Carol", Age = 28 };16 17             // Collection Initializer (集合初始化器)18             List<Person> persons = new List<Person>{ person1, person2, person3}; 19 20             // Extension Method(扩展方法) 和 Lambda Expression(Lambda表达式)21             var personList = persons.Where(p=>p.Name == "Bill");22             var maxAge = persons.Max(p => p.Age);23         }24     }

 

  在上面的代码中使用的语法糖有Automatically Implemented Property,Object Initializer,Collection Initializer,Extension Method,Lambda Expression。很多人认为,语法糖只是进行了封装,提供更方便的接口,不具有很大的意义。事实并非如此,语法糖的更大意义在于,影响了程序员的编程思想。比如:

var personList = persons.Where(p=>p.Name == "Bill")表达的意思是,找出persons集合中Name为Bill的Person组成的集合。

var maxAge = persons.Max(p => p.Age) 表达的意思是,找出persons集合中最大的年龄。

是不是有一点声明式编程的味道,而C#中的Linq更是体现了声明式编程的思想。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!