zoukankan      html  css  js  c++  java
  • 类型后面加问号 int?

    单问号---用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!

    双问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!

    public int? para = null; //public int para;如果不注释掉此行,而把上一行注释掉的话,下面会报错!

    public int par() {     return this.para ?? 0; } 如:c#声明变量加问号(?)的区别

    DateTime StartTime和DateTime? StartTime有什么区别? 新的语法,可空值类型。

    如Int32、结构体等这样的类型是不可能为空的,常见的如int,DateTime都是不可能为空的。所以在需要判断是否有值的场合,可以用加问号的可空值类型,如int?,DateTime?

    这时,可以为空(null),并且可以通过它的HasValue属性来判断是否有值,并通过Value属性获得真正的值。 它可以通过对包装类型直接赋值的方式隐式创建,如: int? a=32;

    //使用Nullable<T>结构,用Nullable<int>实例化。变量x现在可以像int那样使用了,进行赋值或者使用运算符执行一些计算。因为我们转换了
    //Nullable<T>类型的运算符。x还可以是空。可以检查Nullable<T>的HasValue和Value属性,如果该属性有一个值,就可以访问该值。
    Nullable<int>x; x=4; x+=3; if(x.HasValue) { int y=x.Value; } x=null;
    //可空类型使用非常频繁,所有C#有一种特殊的语法,用于定义这种类型的变量。定义这类变量时,不使用一般结构的语法,而使用?运算符。在下
    //面的例子中,x1和x2都是可空int类型的实例。
    Nullable<int>x1;
    int?x2;
    
    //可空类型可以与null和数字比较,如上所示。这里,x的值与null比较,如果x不是null,就与小于0的值比较。 int?x=GetNullableType(); if(x==null) Console.WriteLine("x is null"); else if(x<0) Console.WriteLine("x is smaller than 0 ");
    //可空类型还可以使用算术运算符。变量x3是变量x1和x2的和。如果这两个可空变量中有一个值是null,它们的和就是null。 int?x1=GetNullableType(); int?x2=GetNullableType(); int?x3=x1+x2;
    //非可空类型可以转换为可空类型。从非可空类型转换为可空类型时,在不需要强制类型转换的地方可以进行隐式转换。这种转换总是成功。
    int y1=4;
    int?x1=y1;

    //但从可空类型转换为非可空类型可能会失败。如果可空类型的值是null,把null值赋予非可空类型,就会抛出InvalidOperationException类型的
    //异常。这就是进行显式转换时需要类型转换运算符的原因。
    int?x1=GetNullableType();
    int y1=(int)x1;

    //如果不进行显式类型转换,还可以使用接合运算符从可空类型转换为非可空类型。接合运算符的语法是??,为转换定义了一个默认值,以防止可空类型
    //的值是null。这里,如果x1是null,y1的值就是0.
    int?x1=GetNullableType();
    int y1=x1??0;
    You can reach me by surfing the web ---- huntjobs.cn,or sending e-mails to me,Here is my qq MailBox:1424870395@qq.com
  • 相关阅读:
    C程序的存储空间布局
    获取系统数据文件信息
    基于UDP的一对回射客户/服务器程序
    一段经典的 Java 风格程序 ( 类,包 )
    Vue 脱坑记
    vue面试题总汇
    JavaScript调试技巧
    伪元素小技巧
    JavaScript 开发人员需要知道的简写技巧
    select2插件改造之设置自定义选项 源码
  • 原文地址:https://www.cnblogs.com/HedgehogBlog/p/3539772.html
Copyright © 2011-2022 走看看