如何在VB.NET中创建一个可为空的数字可选参数?如何在VB.NET中创建一个可为空的可选数值(整数/双精度)参数?
4
A
回答
13
编辑:这应该是在VB.NET 10根据this blog post可能。如果你使用它,那么你可以有:
Public Sub DoSomething(Optional ByVal someInteger As Integer? = Nothing)
Console.WriteLine("Result: {0} - {1}", someInteger.HasValue, someInteger)
End Sub
' use it
DoSomething(Nothing)
DoSomething(20)
对于超过10 VB.NET其它版本:
您的要求是不可能的。您应该使用可选参数或可以为空。此签名无效:
Public Sub DoSomething(Optional ByVal someInteger As Nullable(Of Integer) _
= Nothing)
您将得到此编译错误:“可选参数不能有结构类型。”
如果您使用可为空,则将其设置为Nothing,如果您不想传递一个值。这些选项中进行选择:
Public Sub DoSomething(ByVal someInteger As Nullable(Of Integer))
Console.WriteLine("Result: {0} - {1}", someInteger.HasValue, someInteger)
End Sub
或
Public Sub DoSomething(Optional ByVal someInteger As Integer = 42)
Console.WriteLine("Result: {0}", someInteger)
End Sub
5
你不能,那么你得凑合着过载,而不是:
Public Sub Method()
Method(Nothing) ' or Method(45), depending on what you wanted default to be
End Sub
Public Sub Method(value as Nullable(Of Integer))
' Do stuff...
End Sub
1
您也可以使用object:
Public Sub DoSomething(Optional ByVal someInteger As Object = Nothing)
If someInteger IsNot Nothing Then
... Convert.ToInt32(someInteger)
End If
End Sub
0
我搞清楚在VS2012版本一样
Private _LodgingItemId As Integer?
Public Property LodgingItemId() As Integer?
Get
Return _LodgingItemId
End Get
Set(ByVal Value As Integer?)
_LodgingItemId = Value
End Set
End Property
Public Sub New(ByVal lodgingItem As LodgingItem, user As String)
Me._LodgingItem = lodgingItem
If (lodgingItem.LodgingItemId.HasValue) Then
LoadLodgingItemStatus(lodgingItem.LodgingItemId)
Else
LoadLodgingItemStatus()
End If
Me._UpdatedBy = user
End Sub
Private Sub LoadLodgingItemStatus(Optional ByVal lodgingItemId As Integer? = Nothing)
''''statement
End Sub
相关问题
- 1. 如何在VB.NET中为可选参数创建空字典
- 2. 将整数(长整数)转换为jsp中的双精度值
- 3. 在xsl中传递一个双精度数组作为参数
- 4. 可精确表达为浮点数/双精度的整数范围
- 5. 在C中打印一个双精度数而不是整数
- 6. 可为空数组的双精度JSON模式
- 7. 在TransactSQL中,是否可以创建一个接受可变数量参数(可选参数)的函数?
- 8. 如何创建可以选择3个参数值之一的函数?
- 9. 如何在JavaScript中创建一个可变参数(带有可变长度参数列表)函数包装
- 10. 如何将空格的双精度字符串更改为我可以使用的双精度数组
- 11. 可为空的可选参数
- 12. 如何将char数组转换为整数或双精度?
- 13. 它可能把一个默认值函数的参数在VB.NET
- 14. 将整数转换为XPath 1.0中的双精度值
- 15. 如何将双精度数组转换为Java中的整数数组?
- 16. 如何在数组中接受并输出双精度和双精度数?
- 17. 如何将双精度JavaScript数组转换为双精度数组。
- 18. 如何在hibernate-validator中创建一个可选/可空属性?
- 19. 在JSF中为非小数数字格式化一个双精度型值
- 20. 效率:增量创建一个双精度数组?
- 21. 将3个RGB整数转换为一个0-1双精度值
- 22. 是否有可能以保真度将浮点双精度浮点双精度到两个十进制整数?
- 23. 我该如何检查一个可为空的整数数组是否为空?
- 24. 具有非可选参数遵循一个可选的参数
- 25. 传递一个空数组作为可选参数的默认值
- 26. 如何从XML获取整数/双精度值
- 27. 是否可以打印一个双精度浮点数
- 28. 如何创建一个函数并传入可变长度参数列表?
- 29. 如何在可选的位置参数前定义可选参数值?
- 30. AS3:创建一个具有多个参数和可选参数的类?
完美的答案..感谢了很多.. – 2010-01-19 04:09:51