A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵科铭 中级黑马   /  2014-3-8 12:21  /  1421 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int i=null; //这个是错误的
  2. int? i=null; //是可以的
复制代码


要这个int?有什么具体应用?
非空值后加上?就为可空值了么?

7 个回复

倒序浏览
1. 语法 T? 是 Nullable<(Of <(T>)>) 的简写,此处的 T 为值类型;
2. 这两种形式可以互换;
3.为可以为 null 的类型赋值的方法与为一般值类型赋值的方法相同,如 int? x = 9; 或 double? d = 7.708;。
回复 使用道具 举报
在不可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;

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
数据库中可以为空值的列, 比如年龄
对应到代码中的类型就是 int?
当然数据库传进和传出null还得进行转换才行
回复 使用道具 举报
加油
回复 使用道具 举报
一般值类型的都是不可空的,所以要写成这样 int ? i1;

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

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1 赞一个

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马