zoukankan      html  css  js  c++  java
  • 08.C# System.Nulable<T>和空引用操作符(四章4.2-4.4)

      看了这3小节,发现作者讲得太详细了,把一个都在正常使用的用法说得太神密了,搞得不知是自己不懂作者的苦心,还是作者用意为之,这里给大家都简单讲下吧,太深的真心讲不下去。

      1.可空类型的核心部分是System.Nullable<T>,除了这个之外,还有由静态类System.Nullable提供的工具方法。

      2.Nullable<T>是一个泛型类型,类型参数T是一个值类型约束。

      3.T的类型称为可空类型的基础类型。

      4.Nullable<T>有两个构造函数,一个用于创建没有值的实例,一个接收T的一个实例作为值

    1 Nullable<int> n = new Nullable<int>();
    2 Nullable<int> n1 = new Nullable<int>(1);

      5.框架提供了两个转换,T到Nullable<T>的隐式转换,Nullable<T>可以显式转换为T

    1 Nullable<long> nL = 7;
    2 long L = (long)nL;
    3 
    4 //报错,需要显式转换
    5 //long ll = nL;

      说到上述第一行代码,让我想起C++中的复制构造方法,或者一个参数的构造方法,大家可以去看下,C#应该也上C++中的实现吧。

      6.Nullable<T>的装箱和拆箱,不知道可不可以理解成T到Nullable<T>的隐式转换是装箱,Nullable<T>可以显式转换为T是拆箱。

      7.可以使用语法糖,减少代码的输入,使用一个符号"?"

    1 int? intNull = null;

      8.可以使用null进行比较,如上

      9.可空类型可参与运算符,其中会包含一些类型转换,个中体会用过了就发现和一般的类型一样,又因为可空类型可以使用null表示,就可以参与逻辑运算符(就是返回true和false那些)。当然也可以想到对于运算符as也是正常且可用。

      请斧正。

  • 相关阅读:
    第二个冲刺
    实验四主存空间的分配和回收
    Sprint总结
    Sprint回顾
    Scrum项目5.0
    hibernate jpa 注解 @Temporal(TemporalType.DATE) 格式化时间日期,页面直接得到格式化类型的值
    获得HttpServletResponse及其他对象
    UUID.randomUUID()方法介绍
    psp个人软件过程需求文档
    电子产品自动搜索比价系统设计与实现 项目愿景与范围
  • 原文地址:https://www.cnblogs.com/a2htray/p/4190775.html
Copyright © 2011-2022 走看看