我有這樣的代碼:條件運算
private MyClass CreateObject(MyOtherClass myOtherClass)
{
return new MyClass
{
Name = myOtherClass.Name,
ValidationDate = (DateTime)myOtherClass.ValidationDate //ValidationDate is nullable
};
}
如果我這樣做,我有一個編譯錯誤:
條件表達式的類型不能確定,因爲有 沒有隱轉換
'<null>'
'System.DateTime'
之間和
private MyClass CreateObject(MyOtherClass myOtherClass)
{
return new MyClass
{
Name = myOtherClass.Name,
ValidationDate = (myOtherClass.VALIDATION_DATE == null) ? null : DateTime.Now //ValidationDate is nullable
};
}
如果我這樣做,沒有問題:
MyClass myClass = new MyClass();
if (myClass.ValidationDate == null)
myClass.ValidationDate = null;
問題是爲什麼?和Solustion? :)
「MyClass.ValidationDate」和「MyOtherClass.ValidationDate」的類型是什麼? – 2012-04-19 09:08:41
當你說「如果我這樣做,沒有問題」。我不同意,你不在那裏做任何事。您將null設置爲已經爲null的值。 – 2012-04-19 09:09:19
Nitpic - 空合併運算符是'??'。你在談論條件運算符'?:'。 – Oded 2012-04-19 09:10:36