【问题标题】:Can I enable the "Function doesn't return a value on all code paths" warning for "Value Type" functions?我可以为“值类型”函数启用“函数不会在所有代码路径上返回值”警告吗?
【发布时间】:2019-04-25 15:40:13
【问题描述】:

我注意到我的一些函数没有抛出"Function doesn't return a value on all code paths" 警告,即使它们的所有路径都没有返回值。经过一些实验和研究,看起来返回“值类型”数据类型(定义为here)的函数不会引发警告,而返回“引用类型”数据类型的函数会引发警告。我认为这是因为值类型有一个默认值(通常是0),而引用类型的默认值是Nothing

所以我可以理解为什么通常不会为值类型函数抛出警告。但是,有时确保函数在所有路径上显式返回值很重要,即使该函数返回值类型。是否可以为返回值类型的函数启用此警告,例如布尔、双精度或枚举器函数?


编辑:根据要求,这是一个不引发警告的函数示例:
Function TestFunction() As Double
    If Now.DayOfWeek = DayOfWeek.Monday Then
        Return 10
    End If
End Function

(如果我将返回类型更改为字符串,我会收到警告)

【问题讨论】:

  • 你有例子吗?即使是值类型,我也会收到消息。
  • 我也收到了有关值类型的消息,您使用的是什么版本的 VS?
  • 我编辑并添加了一个不会引发警告的函数示例。我正在使用 Visual Studio 2017 Professional,版本 15.9.11。
  • 你有这个吗? #Disable 警告 BC42353 或者可能是 vbproj 中的 或项目属性的“警告配置”编译部分下。
  • @the_lotus 找到了!你把我引向了它。我用来创建项目的模板在项目设置 --> 编译 --> 警告配置下将Function returning intrinsic value type without return value 通知设置为None。如果您将发布作为答案,我将标记为解决方案。谢谢!

标签: vb.net visual-studio compiler-warnings return-type


【解决方案1】:

项目属性>编译下,有一个名为“警告配置”的部分。在那里,您可以将这些类型的条件设置为警告、错误或无。

在这种情况下,条件“函数返回没有返回值的内在值类型”可以设置为“无”。也可以使用#Disable Warning BC42353 禁用它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多