相关疑难解决方法(0)

当函数没有返回时,VB.NET中没有警告

关于Stack Overflow问题的一些评论为什么C#编译器不会阻止属性引用自己?关于警告让我思考在我编写更多VB.NET代码时总是困扰我的旧问题.

其中之一是,如果您声明了一个Function但编译器没有发出警告,但从未执行过显式的Return语句或分配给Function函数.运行Visual Studio 2008,我刚刚做了一个小实验项目,似乎从未修复过该行为.我创建了一个Visual Basic控制台应用程序,其代码如下:

Module MainModule

    Sub Main()

        Dim test As Boolean = TestWarning()

    End Sub

    Function TestWarning() As Boolean

        Console.WriteLine("There is no Return Statement")

    End Function

End Module
Run Code Online (Sandbox Code Playgroud)

我也走进了项目设置,转身On Option StrictOption Explicit.我还设置了警告配置,以便"没有返回值的函数/运算符"设置为错误.

我编译了项目并且没有警告,并且TestWarning()函数没有错误.这似乎是一个发出警告的好地方,因为它默认为False,你可能只是忘了做一个回报.如果没有return语句,C#将会出错.我认为VB.NET对"没有返回值的函数/运算符"配置做了同样的事情.这是一个错误,还是我缺少的东西?

进一步的实验

Function TestWarning() As Boolean

    If DateTime.Now.DayOfWeek = DayOfWeek.Monday Then
        Return False
    Else
        Console.WriteLine("There is no Return Statement")
    End If

End Function
Run Code Online (Sandbox Code Playgroud)

如果我有一个明确ReturnIf,并且没有任何内容Else,那么也没有警告或错误.它将简单地采用默认值,即使您可能(通过编程风格)有明确的返回.在这种情况下,我明确地返回False(这是布尔默认值),所以它可能是我应该回到一个隐藏的错误TrueElse.

vb.net warnings

6
推荐指数
2
解决办法
8129
查看次数

标签 统计

vb.net ×1

warnings ×1