有没有办法停用IDE的以下行为? 这非常愚蠢,你不会立刻看到这个错误。 Hopy我在编码中的评论解释得很好。
当你看到两行都返回不同的东西时:
有缺陷的行(返回“false”,因为它解决了我所在函数的返回值)
If HasIpAddress Then
正确行(使用其他签名处理该函数):
If HasIpAddress() Then
编码:
Public Shared Function HasIpAddress(ByVal p_WaitTimeInSeconds As Integer) As Boolean
Dim dEnd As Date = Date.Now.AddSeconds(p_WaitTimeInSeconds)
While dEnd > Date.Now
If HasIpAddress Then ' THIS is the faulty line.
' If HasIpAddress() Then ' THIS line would work, because of the "()"
' it addresses the function without parameters and not
' the return-value of the current function I am in.
Return True
End If
System.Threading.Thread.Sleep(100)
End While
Return False
End Function
Public Shared Function HasIpAddress() As Boolean
With System.Net.IPAddress.Parse(NetworkTools.GetMyIpAddress())
...Check for Loopbacks, Any, None etc...
End While
Return True
End Function
答案 0 :(得分:3)
您无法更改此行为,它是该语言的不可配置部分(与Option Strict
不同)。因此除了训练自己总是将()
置于函数调用之后,即使函数没有参数,并且希望肌肉记忆会在某些方面发挥作用,也没有一般的方法可以避免这种陷阱。点。