語法糖 是計算機語言中的一種語法,語法糖並沒有為計算機語言添加新的功能,而是對已有的功能進行了封裝,提供給用戶更好的編程方式和編碼風格。
舉例來說,C語言中的a[i] 表示*(a+i),在C#語言中,語法糖更多,比如下面的代碼:

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更是體現了聲明式編程的思想。