c#学习笔记--可空类型

可空类型是System.Nullable结构体的实列。一个可空类型代表了相应值类型的正确范围附加null值。例如Nullable<Int32>的取值范围应该是-2147483648到2147483647外加null。Null<bool>的取值为true,false和null。这种方法一般在处理数据库的时候用到,因为数据库里面可能含有没有赋值的值类型。

class NullableExample
{
    static void Main()
    {
        int? num = null;
        if (num.HasValue == true)
        {
            System.Console.WriteLine("num = " + num.Value);
        }
        else
        {
            System.Console.WriteLine("num = Null");
        }

        // y将会被设置“0”。
        int y = num.GetValueOrDefault();

    // 如果num.HasValue为空,那么num.Value将会抛出InvalidOperationException异常。
        try
        {
            y = num.Value;
        }
        catch (System.InvalidOperationException e)
        {
            System.Console.WriteLine(e.Message);
        }
    }
}
输出的结果:
num = Null
Nullable object must have a value.

可空类型具有如下的属性:
·可空类型只能应用于值类型,引用类型因为已经支持了null而不能被使用。
·T?是System.Nullable<T>的缩写,这里T是一个值类型。这两种格式是可以互换的。
·可以像使用普通类型一样使用可空类型。例如int? x = 10;或者double? d = 40108;
·使用System.Nullable.GetValueOrDefault还获得值,或者当它为空的时候获得默认值。
·使用HaseValue和Value只读属性来测试它是不是空并且返回相应的非空值。
    ·如果含有值那么HaseValue返回真,否则返回假。
    ·如果含有值那么Value返回值,否则抛出System.InvalidOperationException异常。
    ·HaseValue默认值为假,Value默认为未定义。
·当向值类型获得可空类型的值得时候,使用??运算符来赋予一个可空类型一个默认值。例如:int? x = null; int y = x ?? -1;
·不可以嵌套可空类型。Nullable<Nullabel<int>> n;将会抛出异常。 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值