黑马程序员技术交流社区

标题: 关于int和int?,赋值null [打印本页]

作者: zpzhangwenhan    时间: 2013-5-30 12:49
标题: 关于int和int?,赋值null
本帖最后由 zpzhangwenhan 于 2013-6-6 23:14 编辑
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Person p = new Person();
  12.             p.Age = null;
  13.             p.Age2 =null;
  14.         }
  15.     }

  16.     public class Person
  17.     {
  18.         public int? Age
  19.         {
  20.             get;
  21.             set;
  22.         }
  23.         public int Age2
  24.         {
  25.             get;
  26.             set;
  27.         }

  28.     }
  29. }
复制代码
int 不能赋值为null
int? 能赋值为null
这是怎么回事
这两种类型有什么不同???

作者: zpzhangwenhan    时间: 2013-5-30 14:19
c15881291595 发表于 2013-5-30 14:11
对  两种不同的类型 int?是int可空类型 顾名思义即可设置为null的类型,int整型只能定义整型数据。 ...

我们知道 引用类型可以为null 值类型不能为null
int? 变成可空类型后 是不是 int变成了引用类型
我有点绕
作者: 袁梦希    时间: 2013-5-30 20:28
哥们不错啊``{:soso_e102:}
作者: 关关雎鸠    时间: 2013-5-30 20:54
int是整型属于值类型,是数字没有null这一值的,但是我们用的SQL(数据库)里面的值是可以为null的,那么C#为了迎合数据库的null值就新定义了一个int?的类型,它可以为null。当然还有其它原本不可为null的值类型(如DateTime、bool等)也可以这样用。

楼上的给分吧。。呵呵~
作者: zpzhangwenhan    时间: 2013-5-30 23:00
关关雎鸠 发表于 2013-5-30 20:54
int是整型属于值类型,是数字没有null这一值的,但是我们用的SQL(数据库)里面的值是可以为null的,那么C# ...

受教了 呵呵




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