黑马程序员技术交流社区

标题: int和int?的差别 [打印本页]

作者: 赵科铭    时间: 2014-3-8 12:21
标题: int和int?的差别
  1. int i=null; //这个是错误的
  2. int? i=null; //是可以的
复制代码


要这个int?有什么具体应用?
非空值后加上?就为可空值了么?
作者: 许庭洲    时间: 2014-3-8 12:53
1. 语法 T? 是 Nullable<(Of <(T>)>) 的简写,此处的 T 为值类型;
2. 这两种形式可以互换;
3.为可以为 null 的类型赋值的方法与为一般值类型赋值的方法相同,如 int? x = 9; 或 double? d = 7.708;。

作者: 李恒权    时间: 2014-3-8 15:14
在不可null类型后加?就可为null。
如:int i=null;(错误)
     int? i=null;(正确)
可null数据类型有:自定义类、string等;
不可null类型有:int、decimal、bool、等。
可以这么用:可以把不可null的值赋给可null,不可以把可null的值赋给不可null。
如:
//正确
int i1=5;
int? i2=i1;

//错误,因为int?是可null的,int不可null。
int? i3=8;
int i4=i3;
如果想正确,那就需要进行强制类型转换
如:int? i3=8;
      int i4=(int)i3;
作者: lmm    时间: 2014-3-8 20:55
数据库中可以为空值的列, 比如年龄
对应到代码中的类型就是 int?
当然数据库传进和传出null还得进行转换才行
作者: SunshineGirl    时间: 2014-3-10 17:33
加油
作者: 朝花夕拾_黑马    时间: 2014-3-12 09:42
一般值类型的都是不可空的,所以要写成这样 int ? i1;

而数据库和程序中可空的判断要分清楚:假如是 字段:婚姻状况,
   数据库中的null是不知道,而C#中的null是没有
作者: ♠Akechi♠    时间: 2014-3-17 18:42
某些值类型的,加上问号后表示可以为空,用到动态绑定时很好用,比如说你想录入的某些信息可以为空时在做数据Model时可以使用,比如public DateTime? Birthday { set; get; }
作者: cancle    时间: 2014-3-18 10:19
咱么官网视频《winform基础》中Xaml文件夹中的《2-CheckBox与可空数据类型》中,杨中科老师详细讲了下,你可以看看




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