可空类型
C#单问号(?)
基础概念
? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。
Nullable是C#提供的一个特殊的数据类型,可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
例如Nullable< bool > 变量可以被赋值为 true 或 false 或 null。
定义一个nullable 类型(可空类型)的语法如下:
<类型>? <类型名> = null;
示例
static void Main(string[] args)
{
short? a;
int b;
double c;
string? d;
float f;
a = 10;
b = 20;
c = (double)a + b;
f = 1.14f;
d = "这里是一个string";
var t = a + d;
Console.WriteLine("a = {0}, b = {1}, c = {2},d= {3},f = {4} t={5}", a, b, c,d,f,t);
Console.ReadLine();
}
输出
由上可以见的,在实际运算中,nullable类型也可以转换回可转换的其他的类型。其在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用
c#合并运算符(??)
基础概念
用于比较两个值,并返回一个值
int? a =null;
int b;
a = b ?? 1.14; // b 如果为空值则a为 1.14
示例
class test()
{
static void Main(string[] args)
{
// 假设我们有一个可能为null的字符串
string? name = null;
// 使用??运算符来提供一个默认值,如果name为null
string displayName = name ?? "Unknown";
Console.WriteLine($"Hello, {displayName}!");
// 假设我们有一个方法,它可能返回null
string GetUserName()
{
// 这里为了示例,我们直接返回null
return null;
// 在实际应用中,这里可能是基于某些条件返回null或某个用户名
}
// 再次使用??运算符来处理可能为null的返回值
string userName = GetUserName() ?? "Guest";
Console.WriteLine($"Welcome, {userName}!");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)