为什么会这样:
Private [Function] As Func(Of Double, String) = Function(ByRef z As Double) z.ToString
给出以下错误:
嵌套函数没有与委托字符串兼容的签名)'。
虽然这样:
Private [Function] As Func(Of Double, String) = Function(ByVal z As Double) z.ToString
才不是? (区别是ByRef/ByVal)
此外,我如何实现这样的事情?
您收到此错误是因为委托类型函数(ByVal z As Double)作为字符串不兼容函数(ByRef z As Double)作为字符串。你需要精确匹配。
你也不能声明函数(...)带有 ByRef 参数的通用委托 (ref or out在C#中),无论你是否使用匿名函数。
但是您可以声明委托类型,然后将其与匿名函数一起使用
Delegate Function ToStringDelegate(ByRef value As Double) As String
Sub Main()
Dim Del As ToStringDelegate = Function(ByRef value As Double) value.ToString()
End Sub
或者您可以使用隐式类型(如果选项推断已打开)
Dim Del = Function(ByRef value As Double) value.ToString()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)