亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C# 可空类型详解:安全处理 Null 值的最佳实践

C# 提供特殊的可空类型,允许在正常取值范围外额外赋值 null。

例如:Nullable<Int32> 可存储 -2,147,483,648 到 2,147,483,647 之间的任意值或 null;Nullable<bool> 可存储 true、false 或 null。

声明语法

<data_type>? <variable_name> = null;

使用示例

using System;
namespace CalculatorApplication {
    class NullablesAtShow {
        static void Main(string[] args) {
            int? num1 = null;
            int? num2 = 45;
            double? num3 = new double?();
            double? num4 = 3.14157;
            bool? boolval = new bool?();
            
            Console.WriteLine("Nullables at Show: {0}, {1}, {2}, {3}", num1, num2, num3, num4);
            Console.WriteLine("A Nullable boolean value: {0}", boolval);
            Console.ReadLine();
        }
    }
}

输出:

Nullables at Show: , 45, , 3.14157
A Nullable boolean value:

注意:null 值输出为空字符串。

空合并运算符 (??)

空合并运算符用于可空值类型和引用类型。若第一个操作数为 null,返回第二个操作数值;否则返回第一个操作数值。隐式转换必须可能。

示例

using System;
namespace CalculatorApplication {
    class NullablesAtShow {
        static void Main(string[] args) {
            double? num1 = null;
            double? num2 = 3.14157;
            double num3;
            
            num3 = num1 ?? 5.34;
            Console.WriteLine("Value of num3: {0}", num3);  // 5.34
            
            num3 = num2 ?? 5.34;
            Console.WriteLine("Value of num3: {0}", num3);  // 3.14157
            Console.ReadLine();
        }
    }
}

可空类型核心属性与方法

成员说明
HasValuebool,指示是否有非 null 值
Value获取底层值(若为 null 抛出异常)
GetValueOrDefault()获取值或默认值(如 0、false)
GetValueOrDefault(T)获取值或指定默认值

安全访问模式

int? x = null;

// 模式 1:HasValue 检查
if (x.HasValue) Console.WriteLine(x.Value);

// 模式 2:GetValueOrDefault
Console.WriteLine(x.GetValueOrDefault(-1));  // -1

// 模式 3:空合并运算符
Console.WriteLine(x ?? -1);  // -1

// 模式 4:C# 7.0+ 模式匹配
if (x is int val) Console.WriteLine(val);

最佳实践:数据库交互、配置读取、外部 API 调用等可能缺失值的场景优先使用可空类型,避免魔法数字(如 -1 表示无效)。

C语言

  1. AgCu20 合金:23°C 下全面力学与热学性能
  2. 合金15CDV6 (DIN 1.7734):高强度、高韧性、易焊接
  3. DIN 1.7734 15CDV6合金:高强度、高韧性、易焊接
  4. 15CDV6合金 (DIN 1.7734) – 高强度、易焊接、优异韧性
  5. PtNi10 铂镍合金 — 高强度高温电接触材料
  6. PtIr10 铂铱合金 — 高强度高温生物相容材料
  7. Corroplast 耐腐蚀钢板 – 精密加工用高性能塑料模具钢
  8. X46 AM FCE:关键管道应用用高性能 API 5L 钢材
  9. X56 AM FCE:高性能管道用优质 API 5L 钢材
  10. Ferro-Titanit® Cromoni – 高强度、非磁性钛合金
  11. C# 特性完全指南:预定义特性、自定义特性与元数据编程
  12. 掌握 Java 8 Optional:实现空安全代码的实用指南