这个源于一个Model中的日期变量。

Public Class UserModel{
...
   
private DateTime m_BirthDay;
   Public DateTime Birthday{
      
get{return m_BirthDay;}
      
set{m_BirthDay=value;}
   }
...
}

 

如果有人在注册的时候不填写,如何表示呢?

DateTime=null

以上代码编译的时候告知,值类型不能直接赋值null。

为什么值类型不能赋值为null呢?这个道理好像还蛮复杂的:参见http://blog.csdn.net/shyleoking/archive/2010/06/03/5643714.aspx

 

C#为了解决以上问题,增加了一个可空类型System.Nullable<T>,这样就可以解决以上问题。

 

Public Class UserModel{
...
   
private Nullable<DateTime> m_BirthDay;
   Public Nullable
<DateTime> Birthday{
      
get{return m_BirthDay;}
      
set{m_BirthDay=value;}
   }
...
}

 

也可以简写如下

Public Class UserModel{
...
   
private DateTime? m_BirthDay;
   Public DateTime
? Birthday{
      
get{return m_BirthDay;}
      
set{m_BirthDay=value;}
   }
...
}

 

 

posted on 2010-08-16 16:26  poplau  阅读(259)  评论(0编辑  收藏  举报