在VB.NET中禁止警告

时间:2015-02-16 22:58:09

标签: vb.net

所以,我写了一些VB.NET代码。有点像这样:

Public Function foo() As Object
    Select(someInt)
        Case 1
        Case 2
        Case 3
            return doStuff()
        Case Else
            Throw New ArgumentException("Can't supply that argument to this method.")
    End Select
End Function

这是很好的代码。如果有人将无效参数传递给使用此代码段的方法,它会告诉他们确切的错误位置和原因,他们可以立即修复它。但是......它“不会在每个代码路径上返回一个值。”我怎么能抑制这个警告?

我想在其他方法上提供此警告,但不在此处。

Warning message:

3 个答案:

答案 0 :(得分:5)

VB.NET不像C#那样使用switch语句。你不能只是把案件堆叠在一起并且已经失败了。没有堕落。相反,您必须在每种情况下都使用回车,或使用逗号表示法:

Public Function foo() As Object
    Dim someInt As Integer = 0
    Select Case (someInt)
        Case 1
            Return 0
        Case 2
            Return 0
        Case 3
            Return 0
        Case Else
            Throw New ArgumentException("Can't supply that argument to this method.")
    End Select
End Function

或者

Public Function foo() As Object
    Dim someInt As Integer = 0
    Select Case (someInt)
        Case 1, 2, 3
            Return 0
        Case Else
            Throw New ArgumentException("Can't supply that argument to this method.")
    End Select
End Function

答案 1 :(得分:0)

此错误消息表明这是在Function内,是否正确?

您需要在doStuff()之后返回一个值,所以类似于以下内容(假设您的函数返回Integer):

Select(someInt)
    Case 1
    Case 2
    Case 3
        doStuff()

        Return 0
    Case Else
        Throw New ArgumentException("Can't supply that argument to this method.")
End Select

如果这不能回答您的问题,如果您与我们分享您的整个职能部门,这可能有所帮助。

答案 2 :(得分:-1)

您的代码位于函数内部。

Public Function NameHere(ByVal someInt as Integer) as Object

您需要返回一些值:

NameHere = "SomeValue"

也许你忘记了这一点。其他解决方案是将Function更改为Sub并且不需要返回值。

修改

也许你想通过引用发送参数:

Public Sub foo(ByRef someStuff as String) As Object
    Select(someInt)
        Case 1
        Case 2
        Case 3
            someStuff = doStuff()
        Case Else
            Throw New ArgumentException("Can't supply that argument to this method.")
    End Select
End Sub

这可以避免你的警告