随笔 - 576  文章 - 0  评论 - 62  阅读 - 219万

语法糖

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

举例来说,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更是体现了声明式编程的思想。

posted on   Andy Niu  阅读(3767)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2011年12月 >
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示