切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
C# 基础
Mybatis
ADO.NET
ASP.NET
Python 基础
Linq
Web Forms
.NET
Spring
SpringBoot
SpringCloud
.NET Core 中间件
Maven
.NET 类库
ASP.NET MVC
EF
NHibernate
WebApi
Java
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
服务端
C# 常用的语法糖
[TOC] ## 1. C#常用语法糖 ### 1.1 C# 中检查 null 的语法糖 #### 1.1.1. 空合并运算符 ?? 如果左边是的null,那么返回右边的操作数,否则就返回左边的操作数 ```csharp public static void Test() { int? a = null; int b = a ?? -1; Console.WriteLine(b); //output -1 } ``` #### 1.1.2. 条件访问运算符 ?. 如果左边是null,那么`不执行后面的操作`,直接返回空,否则就返回实际操作的值 ```csharp public static void Test() { string a = null; int? b = a?.Length; //b = null,如果不使用?.这行代码将报错 Console.WriteLine(b ?? -1); //output -1 } ``` > **Tips:** 上面代码如果不使用?.的语法糖,这行代码将报错,错误信息为:System.NullReferenceException:“未将对象引用设置到对象的实例。” #### 1.1.3. ??= 当左边是null,那么就对左边的变量赋值成右边的 ```csharp public static void Test() { int? a = null; a ??= -1; Console.WriteLine(a); //output -1 } ``` #### 1.1.4. ?[] 索引操作,使用方式与 `?.`类似,当前索引值为null时不再执行后面的代码 ```csharp public static void Test() { int[] i = null; int? a = i?[1]; Console.WriteLine(a ?? -1); //output -1 // string[] string[] i = null; string a = i?[1]; Console.WriteLine($"oneWhyIndex:\ni?[1] = {a ?? "无值"}"); //output 无值 } ``` > Tips:如果连续的使用 `?[]?.` 当前面出现null后就不会往后执行了 ### 1.2. Dictionary 类型语法糖 借助 Dictionary 类型中的 TryGetValue 函数,如果没有匹配结果,返回 false,结合三元运算获取到需要的信息 ```csharp public static void dicTry() { Dictionary<int, string> dic = new Dictionary<int, string>(); // dic.Add(1, "我是第一名"); string info = dic.TryGetValue(1, out var value) ? value : "我是第几名?"; Console.WriteLine($"oneWhyIndex:\n{info}"); //output 我是第几名? } ``` ### 1.3. 集合初始化器和字符串插值 + 集合初始化器:示例化对象时既可赋值,初始化对象数据 + 字符串插值:使用`$"{变量}"`包裹字符串,及可以省略老式的 `+号` 拼接写法 ```csharp public static void initType() { //集合初始化器 List<string> list = new List<string>() { "曹植", "曹丕", "曹彰" }; //字符串插值 Console.WriteLine($"initType:\n{list[0]}\n{list[1]}\n{list[2]}"); //output:initType: // 曹植 // 曹丕 // 曹彰 } ```
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号