考慮以下代碼(不要介意設計,這只是一個示例):
Private _value As Boolean
Public Sub SetValue(Optional getValue As Func(Of Boolean) = ... )
_value = getValue()
End Sub
我怎樣才能在不使用的情況下讓它作業Nothing?
為了簡單起見,假設我希望默認值是一個始終回傳的函式True。可以做到嗎?如果是這樣,它可以行內完成嗎?
提前致謝 !
uj5u.com熱心網友回復:
可選引數的默認值必須是常量運算式(source)。
在 .NET 中,您只能擁有“原始型別”的常量(Boolean、Byte、Char、DateTime、Decimal、Double、Integer、Long、Short、Single 或 String、source)。
因此,您不能將函式參考用作默認值。
作為一種解決方法,您可以使用:
Private _value As Boolean
Public Sub SetValue(Optional getValue As Func(Of Boolean) = Nothing )
_value = If(getValue(), DefaultFunc())
End Sub
或者您可以使用多載:
Private _value As Boolean
Public Sub SetValue(getValue As Func(Of Boolean))
_value = getValue()
End Sub
Public Sub SetValue()
_value = GetDefaultValue()
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490840.html
上一篇:獲取StartsWith價值
