這是我目前的方法,但我不時要處理這個問題,我想知道是否有更優雅的方法。將可爲空的參數傳遞給方法
我有:long? LoadEntityId
字段。我有,我用這個作爲參數的方法:
private bool IsUsedInProduction(long? loadEntityId)
的問題是,當LoadEntityId
實際上是空我得到Nullable object must have a value.
我現在做的是這樣的:
if ((byte)cboStatus.SelectedValue == 10
&& LoadEntityId.HasValue
&& IsUsedInProduction(LoadEntityId.Value))
但我認爲應該有更好的方法來解決這個問題。
PS
看來我是不是在我的解釋不夠清楚,所以這個問題是,如果我:
if ((byte)cboStatus.SelectedValue == 10
&& IsUsedInProduction(LoadEntityId.Value))
(刪除LoadEntityId.HasValue檢查)時LoadEntityId實際上是零,我得到異常,如果我離開它 - 好吧,我只是尋找一種方法來讓我的代碼在沒有檢查的情況下工作。
什麼是錯的代碼是什麼呢? – asawyer 2013-04-09 12:10:52
拋出可空值的異常究竟在哪裏? – thecoop 2013-04-09 12:11:04
爲什麼當參數無效時檢查一個值?你不能只使用'if((byte)cboStatus.SelectedValue == 10 && IsUsedInProduction(LoadEntityId))' – Lee 2013-04-09 12:13:00