【读书笔记】 C# 可空数据类型

数据库中的数字和编程语言中的数字有显著不同的特征,因为数据库中的数字可以为空,C#中的数字不能为空。Int32是一个结构,而结构是值类型的,所以它不能为空。

在C#中可以使用Nullable<T>结构很容易解决这个问题。

定义可空类型:

 Nullable<int> x;
 int? x2;

可以检查Nullable<T>的HasValue和Value属性

            Nullable<int> x;

            x = 4;
            x += 3;

            if (x.HasValue)
            {
                int y = x.Value;
            }

            x = null;

可空数据类型还可以使用算数运算符。变量x3是变量x1和x2的和。如果这2个可空变量中有一个的值为null,他们的和就是null。

int? x1 = GetNullableType(); 

int? x2 = GetNullableType();

int? x3 = x1 + x2;

将可空数据类型转换为非可空数据类型:

第一种,显示转换

int? x1 = GetNullableType();

int y1 = (int)x1

第二种,使用接合运算符转换 这个更安全些

int? x1 = GetNullableType();

int y1 = x1 ?? 0;

当使用GetNullableType()方法的时候,你会发现这样的错误信息

The name 'GetNullableType' does not exist in the current context

这个应该是GetNullableType方法的命名空间没有加入,但是这个方法具体在哪个命名空间还没有找到o(╯□╰)o

伪python爱好者,正宗测试实践者。
原文地址:https://www.cnblogs.com/herbert/p/1745529.html