1. Null不是0、不是空,是"不知道"。数据库中int是可以为null的,但是C#中int不可以为null,存在一个不匹配的问题。
2. 介绍"可控数据类型",string、Person(引用类型)等是可null的,但是int、bool、datetime(值类型)
是不可为null,在不可空类型后加"?"就是可空类型了,HasValue、Value。
3. DBNull和null的区别:如果值为null,直接写null的话用SqlParameter提交到服务器上是报错的,需要写DBNull.Value:new SqlParameter("Id"model.Id==null?(Object)DBNull.Value:model.Id)。三元运算符冒号两边的值类型相同或者有继承关系。
4. int x=n??10;
这句话的意思是,如果n=null,那么x=10,否则x=n
和下面的意思一样:
int x=n==null?10:n;