【ArcGIS Pro二次开发】(86):C#问号运算符(?)的用法

1、三目运算符

cs 复制代码
// 【判断语句】?【为true时获得的值】:【为false时获得的值】
string res = x > 2 ? "正确" : "错误";
// 取值时可以再叠加判断
string res2 = x > 2 ? "正确" : (x > 1 ? "有一点正确" : "错误");

2、可为空

cs 复制代码
// 声明可为空的数据类型
int? a;
int? a = 5;
int? a = null;

3、null条件运算

cs 复制代码
// 如果row["SZ1"]为空,赋值结果就直接返回null,而不是报错
var sz1 = row["SZ1"]?.string(); 

4、null合并运算

cs 复制代码
// x不为空时,返回x,为空时返回-1
int? x = null;
return x ?? -1;
相关推荐
csdn_aspnet1 天前
C# 在逗号分割的字符串中判断是否包含指定字符
c#·正则·linq·string·regex·contains
宝桥南山1 天前
Blazor Web Assembly - 体验一下Authentication State从Server共享给Client
microsoft·微软·c#·asp.net·.net·.netcore
淡海水1 天前
02-06-历史-托管GC机制-垃圾回收如何影响数据结构选择
c#·编译·gc·机器码
longxiaozhang62 天前
C# static:静态成员,小白也能看懂
开发语言·c#
longxiaozhang62 天前
C#继承:让代码少写一点,偷懒的好方法
开发语言·c#
rockey6272 天前
C#脚本引擎之AScript与DynamicExpresso对比
c#·.net·script·动态脚本
Vae_Mars2 天前
C#中的delegate委托
开发语言·c#
公子小六2 天前
基于.NET的Windows窗体编程之WinForms音频控件
windows·microsoft·c#·.net·音视频·winforms
绿浪19842 天前
c# 结构体 能不能直接封送检测
开发语言·c#
新手unity自用笔记2 天前
unity基于Socket的网络学习
网络·网络协议·学习·unity·c#·游戏引擎