Nullable object must have a value


報錯信息:Nullable object must have a value

翻譯過來就是:可為空的對象必須具有一個值。

看起來有點怪怪的,既然是可空對象為什么必須要有值嗎?下面我們就探討一下吧....

舉個列子,開發過程中可能碰到的一個場景:

有一個類Goods,這個類有很多的屬性,其中有一個Price屬性為可空double類型,我們需要另外一個類GoodsDto 來接收Goods對象並輸出,其中也有一個Price屬性

為double類型。我們可以看到報錯了 double?轉double,因為double?可能是空的,但是double轉double?不會報錯,因為double永遠都有值,而且double?可接受空值

 

那么怎么處理呢?

         GoodsDto dto = new GoodsDto()
            {
                GoodsName = goods.GoodsName,
                GoodsNo = goods.GoodsNo,
                Price = goods.Price.Value
            }; 

再次運行下,發現報錯Nullable object must have a value,什么情況呢?

其實稍微分析一下就不難理解了,回到根源還是double?轉double的問題  goods.Price沒值的話,goods.Price.Value就是空值, dto.Price是不可能接受的。

雖然你是可空的,但是當我需要的時候你必須要有值。你可以隱身,但女朋友需要的時候你必須得站出來😁

差點忘了還是單身狗。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

所以加個判斷就好了(為空時給一個默認值)

 

           GoodsDto dto = new GoodsDto()
            {
                GoodsName = goods.GoodsName,
                GoodsNo = goods.GoodsNo,
             Price = goods.Price == null ? 0 : goods.Price.Value
            };

 

 

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM