CLR VIA C# 可空值类型

using System;

namespace 可空值类型
{
    class Program
    {
        static void Main(string[] args)
        {
            //Int32 a = null; //错误,值类型不能为空
            Int32? a = null;//Int32? 和System.Nullable<Int32>等价
            Int32? b = 5;//将int32类型实例隐式转换成Nullable<Int32>类型;
            if (a.HasValue) Console.WriteLine(a.ToString());
            else Console.WriteLine("a=null");
            if (b.HasValue) Console.WriteLine("b="+b.ToString());
            else Console.WriteLine("b=null");
            Console.WriteLine("b的类型:" + b.GetType());//其实应该为System.Nullable<Int32>
            /*******************************************************************************
             * 逻辑测试
             * ****************************************************************************/
            Boolean? c1 = null;
            Boolean? c2 = true;
            Boolean? c3 = false;
            string t=null;
            Console.WriteLine("c1&c2:{0}", c1 & c2);
            Console.WriteLine("c1&c3:{0}", c1 & c3);
            Console.WriteLine("c1|c2:{0}", c1 | c2);
            Console.WriteLine("c1|c3:{0}", c1 | c3);
            Console.WriteLine(t??"空值");
            t = "Hello,fxqcn!";
            Console.WriteLine(t ?? "空值");//??和?:大致意思一样,但更简单
            //如果前一个表达式为null,则表达式取后面的值,??:“空接合操作符”
            /*******************************************************************************
             * 装箱与拆箱
             * ****************************************************************************/
            object o = 5;//已装箱的Int32
            //把它拆箱为一个Nullable<Int32>和一个Int32
            Int32? d1 = (Int32?)o;
            Int32 d2 = (Int32)o;//如果引用类型不为NULL,可以将它转换为System.Nullable<Int32>类型和int32类型
            o = null;
            d1 = (Int32?)o;
            //d2 = (Int32)o; 错误,如果引用类型为空,只能将它转换为System.Nullable<Int32>类型
            Console.ReadLine();

        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值