【发布时间】: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