.NET修仙传
修炼秘籍
.net 修炼路线图
书籍大全
C#入门后该如何进阶?如何提升自己?
读写 Excel 四种方案
书籍大全
dotnet命令大全
C# 程序集加载方法
linux 下部署.net环境
.NET WebAPI中FromRoute、FromQuery、FromBody的关键角色与用法
C# 新用法
盘点C#最有价值的10个语法糖
C#基础语法与数据类型
序列化
C# 7.0
模式匹配Pattern Matching
优秀实用的类库推荐
2024年C#优秀实用的类库推荐
依赖注入与中间件
依赖注入
查询所有已注入的服务
WebApi实现批量注入
原生依赖注入
自动依赖注入框架
优秀中间件
依赖注入
Autofac
生命周期
文档操作
PDF操作
PDF合并及生成书签目录
Excel操作
几个Excel文件合并去重分类
Excel文件之COM组件方式
操作Excel文件之NPOI
INI文件
面试宝典
WebService、WCF、WebAPI、一般处理程序
C# 线程和进程的区别
asp.net core 服务生命周期
asp.net core 的中间件都有哪些
操作系统编程
获取搜狗输入法中英文
com组件集成
执行系统命令
通过句柄嵌入exe窗体程序
windows-开机自启动
程序调用cmd命令生成WCF服务的客户端调用文件
获取电脑信息
键盘记录器
键盘改键功能
监听鼠标操作
框架揭秘
01编程初体验
中间件 Middleware
路由
配置管理
配置系统
配置管理
日志管理
Log4Net
NLog
.net core原始日志记录
日志管理
Serilog
LINQ
LINQ概讲
LINQ编程
常用方法
ORM
EF Core初始化
EF Core的实体类配置
执行原生SQL语句
EF Core
操作sqlite
操作Mysql数据库
操作LiteDB
AutoMapper高效实现对象映射
AutoMapper
AutoMapper 10个常用方法总结
缓存
Redis支持哪几种数据类型?
什么是Redis?简述它的优缺点?
Redis相比memcached有哪些优势?
认证
什么是 JWT?它是如何工作的?
.net framework jwt
.net core Jwt操作
认证管理
.Net WebApi校验Token/参数的几种方式
鉴权授权
Authorization的几种方式
基础语法
集合
1、C#中常用集合类型
yield return 简化迭代并提高代码质量
AOP
.net core AOP
操作筛选器
网络编程
TCP 连接的前世今生
HttpRequest,WebRequest,HttpWebRequest,WebClient,HttpClient 之间的区别
网络编程
WebApi获取客户信息
通信
HTTP通信
公共类-HttpHelper
多线程编程
十种线程方式分析
Task-筑基期
parallel-筑基
消息队列
Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?
构建高性能 API 的高级技术
优秀教程网站
每日学习地址
全套教程汇总
理解ASP.NET Core
定时任务
定时器的三种使用方式
定时任务之windows任务计划程序
创建任务到Windows任务计划程序
定时任务之Quartz.Net
IHostedService启动时运行定时任务
JSON序列化反序列化工具
前辈
发布部署
应用部署
GRPC
使用GRPC多个proto文件
本文档使用 MrDoc 发布
-
+
首页
盘点C#最有价值的10个语法糖
前言 C#语言是世界最优雅的语言之一,深受广大程序员的喜欢,尤其是其中的一些语法糖。 C#语言推出了许多有价值的语法糖,这些语法糖可以使代码更加简洁、易读和提高程序的运行效率。本文将介绍10个比较实用的语法糖。 # 1、集合初始化器 集合初始化器允许我们在创建集合对象时使用简洁的语法来初始化集合的元素。C# 6引入了更简化的语法来初始化数组和集合,减少了冗余的代码。 ```java List<string> names = new List<string> { "John", "Jane", "Alice" }; int[] numbers = { 1, 2, 3, 4, 5 }; ``` # 2、空合并运算符 空合并运算符提供了一种简洁的方式来处理可能为null的值,它返回第一个非null的操作数。 ```java string name = inputName ?? "Unknown"; ``` # 3、条件访问运算符 条件访问运算符允许我们在访问对象的属性或调用方法之前,先检查对象是否为null。它可以减少空引用异常的发生。 ```java string text = "abcdafdafadf"; int? length = text?.Length; ``` # 4、字符串插值 字符串插值使得在字符串中插入变量变得更加简单和直观,而不需要使用字符串连接操作符。 ```java string name = "John"; int age = 30; Console.WriteLine($"My name is {name} and I'm {age} years old."); ``` # 5、Lambda表达式 Lambda表达式提供了一种简洁的方式来定义匿名函数,使得代码更加简洁和可读。 ```java List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; var evenNumbers = numbers.Where(n => n % 2 == 0); ``` # 6、异步和等待 (Async/Await) 异步和等待是C#中用于处理异步操作的关键字和模式。它们使得在执行耗时操作时,可以让程序保持响应,并在操作完成后继续执行相应的代码。 ```java public async Task<string> GetDataAsync() { HttpClient client = new HttpClient(); string result = await client.GetStringAsync("https://api.example.com/data"); return result; } ``` # 7、引用传递和值传递简化 C# 7引入了ref locals和ref returns,使得在方法调用和赋值时可以更灵活地使用引用传递。 ```java ref int GetReferenceToValue(ref int value) { return ref value; } int x = 5; ref int refX = ref GetReferenceToValue(ref x); refX = 10; // 修改了原始变量x的值 ``` # 8、分部方法 分部方法是一种特殊类型的方法,允许将方法的定义分割到多个部分中,其中一部分由开发者实现,另一部分由编译器生成。要求是必须声明在部分类里。 ```java partial void LogMessage(string message); // 编译器 partial void LogMessage(string message) { // 代码逻辑 } ``` # 9、类型模式的 switch C# 9引入了类型模式的 switch 表达式,使得在 switch 表达式中可以根据类型进行匹配和处理。 ```java string result = obj switch { string s => "它是string类型", int i => "他说int类型", _ => "未知类型" }; ``` # 10、扩展方法 扩展方法允许我们向现有的类型添加新的方法,而无需修改原始类型的定义,提高了代码的可扩展性。 ```java public static class StringExtensions { public static bool IsPalindrome(this string str) { // 判断字符串是否为回文 } } string text = "level"; bool isPalindrome = text.IsPalindrome(); //欢迎关注公众号:DOTNET开发跳槽,领取海量面试题。加微信号xbhpnet入群交流 ``` # 结语 以上是C#中最有价值的10个语法糖,它们提供了更强大、更灵活和更高效的编程工具,帮助开发者更轻松地编写清晰、简洁和可维护的代码。 当然还有其它比较优秀的语法糖,比如并行Parallel.For,篇幅有限这里就不列出了。 你觉得C#那个语法糖比较优秀,欢迎留言讨论。
孙端己
2024年4月19日 17:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码