黑马程序员技术交流社区

标题: 为什么下面的代码不报错呀? [打印本页]

作者: 幸福的彼岸    时间: 2014-1-15 18:02
标题: 为什么下面的代码不报错呀?
本帖最后由 幸福的彼岸 于 2014-1-16 09:33 编辑
  1. int? i=null;
  2. Console.WriteLine(i);
复制代码

int类型的i应该是值类型的,为什么可以给它赋值null呀?
作者: 七录斋    时间: 2014-1-15 18:27
看不懂你的代码,int后面怎么还有个“?”啊?再说int类型的i是不可以赋值null的,而Integer类型的倒是可以赋值null。

个人拙见,仅供参考,如有错误,还望赐教。
作者: 念~    时间: 2014-1-15 19:08
int? 是可空的int类型,是可以赋值为null,所以是不会报错的
作者: 林成彬    时间: 2014-1-15 19:30
这是一个可空数据类型
作者: 矫情    时间: 2014-1-15 21:04
这是个可空类型
作者: §風過無痕§    时间: 2014-1-16 00:38
本帖最后由 §風過無痕§ 于 2014-1-16 00:53 编辑

敬请参考可空类型!
可空类型是C#2.0中引入的,可空类型是可以包括null的值类型


可空类型经常与??操作符一起使用 起用法如下
  1. namespace 可空类型
  2. {
  3.         class Program
  4.         {
  5.                 public static void Main(string[] args)
  6.                 {
  7.                         int? i=null ;
  8.                         int num=i??12;//若i不为空 把??左边的值赋给变量num 否则把??右边的值赋给num
  9.                         Console .WriteLine (num);//num=12
  10.                        
  11.                         Console .WriteLine ("*******************");
  12.                         int? i1=5;
  13.                         int num1=i1??12;
  14.                         Console .WriteLine (num1);//num=5
  15.                        
  16.                         Console.ReadKey(true);
  17.                 }
  18.         }
  19. }
复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2