.net 2.0中一个小小的疑惑

前几天工作中遇到一种这样的需求。
public class A
{
    private DateTime? _serverDateTime;
    public DateTime ServerDateTime
    {
         get {
             if(_serverDateTime.HasValue)
            {
               return _serverDateTime.Value;  }
           throw new CustomException("");
        }
        set
       {
              _serverDateTime = value;
        }
    }
}
在编译以下代码
A a = new A();
a.ServerDateTime = null;
时报错,提示ServerDateTime是DateTime类型不允许赋予Null值。
晕!!!!
其实我是给_serverDateTime赋值,也是DateTime?类型,应该可以接受为Null的值。可编译器确还是去校验非空属类型的类型,不能不说是一个遗憾。结果呢
把DateTime?的修饰符改为public,实属无奈之举。
看来ms还没有把空属类型处理好。
posted on 2006-08-26 12:45  蝈蝈  阅读(1031)  评论(12)    收藏  举报