前几天工作中遇到一种这样的需求。
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还没有把空属类型处理好。
转载于:https://www.cnblogs.com/hotsoho.net/archive/2006/08/26/486934.html