类型后面加问号 int?
2016-03-24 13:16
387 查看
单问号---用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!
双问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!
public int? para = null;
//public int para;如果不注释掉此行,而把上一行注释掉的话,下面会报错!
public int par()
{
return this.para ?? 0;
}
如:上面代码,加上问号后 初始这个类里面的变量的时候是null,不加问号 初始化变量的时候 就是0
如Int32、结构体等这样的类型是不可能为空的,常见的如int,DateTime都是不可能为空的。所以在需要判断是否有值的场合,可以用加问号的可空值类型,如int?,DateTime?
这时,可以为空(null),并且可以通过它的HasValue属性来判断是否有值,并通过Value属性获得真正的值。
它可以通过对包装类型直接赋值的方式隐式创建,如:
int? a=32;
双问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!
public int? para = null;
//public int para;如果不注释掉此行,而把上一行注释掉的话,下面会报错!
public int par()
{
return this.para ?? 0;
}
/// <summary> /// BZZS /// </summary> private decimal? _bzzs; public decimal? BZZS { get{ return _bzzs; } set{ _bzzs = value; } }
如:上面代码,加上问号后 初始这个类里面的变量的时候是null,不加问号 初始化变量的时候 就是0
如Int32、结构体等这样的类型是不可能为空的,常见的如int,DateTime都是不可能为空的。所以在需要判断是否有值的场合,可以用加问号的可空值类型,如int?,DateTime?
这时,可以为空(null),并且可以通过它的HasValue属性来判断是否有值,并通过Value属性获得真正的值。
它可以通过对包装类型直接赋值的方式隐式创建,如:
int? a=32;
具体的,可以搜索“可空值类型”来了解更多信息
相关文章推荐
- protobuf中的variable-integer编码方式
- hdu1007 平面最近点对
- 类型后面加问号 int?
- Hive命令行经常使用操作(数据库操作,表操作)
- HDU-1025-Constructing Roads In JGShining's Kingdom
- iOS 设备型号判断及对应固件的选择
- 简明Vim练级攻略
- web service CXF工作中使用总结
- Qt使用QGraphicsView实现滑动窗体效果
- BDC操作与常见问题
- pycnn add实例
- 深入理解CSS中的margin负值
- 推荐大家一个CSS书写规范
- sqlserver跨服务器数据库sql语句
- VK Cup 2016 - Qualification Round 2 B. Making Genome in Berland
- Android自定义标题栏
- IOS 各版本下载地址
- Struts2介绍及教程
- linux(centos7)+apache+php7 安装教程
- MyEclipse has detected that less than 5% of the 341MB of PS Old Gen(Heap memory) space remains.