可空类型

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}!");
    }
}

输出

posted @   请明月  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示