我注意到我的一些函数没有抛出"Function doesn't return a value on all code paths"
警告,即使并非所有路径都返回值。经过一些实验和研究后,看起来返回“值类型”数据类型(定义为here)的函数不会抛出警告,而返回“引用类型”数据类型的函数将抛出警告。我认为这是因为Value Types有一个默认值(通常是0
),而Reference类型的默认值是Nothing
。
所以我可以理解为什么通常不会为Value Type函数抛出警告。但是,有时确保函数显式返回所有路径上的值是很重要的,即使该函数返回值类型也是如此。是否可以为返回值类型的函数启用此警告,如Boolean,double或枚举函数?
Function TestFunction() As Double
If Now.DayOfWeek = DayOfWeek.Monday Then
Return 10
End If
End Function
(如果我将返回类型更改为String,我会收到警告)
在Project Properties> Compile下,有一个名为“Warning configurations”的部分。在那里,您可以设置是否要将这些类型的条件设置为警告,错误或无。
在这种情况下,条件“返回没有返回值的内在值类型的函数”可以设置为“无”。也可以用#Disable Warning BC42353
禁用它