【发布时间】:2019-03-07 14:48:55
【问题描述】:
在下面的代码中,我尝试在 if..then 块中插入 End 语句,以检查传递给构造函数的温度值是否在 -20 到 +50 度之间,如果没有要求,则最终结束程序执行遇见了。 Visual Studio 告诉“End 语句不能在类库项目中使用”。检查传递给类构造函数的参数正确性的良好做法/方法是什么? (我已经读过异常不应用于执行数据控制流,因为应使用异常来解决“意外行为”,在这种情况下,我应该期望用户可能会尝试插入超出此类允许范围的值有意义)。
谢谢
Public Class WaterGlycoleMixture
Implements ICoolingFluid
Private _temperature As Double
Private _glycolePercentage As Double
Public Sub New(temperature As Double, glycolePercentage As Double)
If -20 < temperature < 50 Then
MessageBox.Show("Error: Temperature Range must be between -20 e +50°C")
End
End If
_temperature = temperature
_glycolePercentage = glycolePercentage
End Sub
'Some more methods and properties here
End Class
【问题讨论】:
-
这只是无效的语法。没有
End声明这样的东西。你结束了一个If块,或While循环,或Class或Namespace,等等。但所有这些都必须按照正确的顺序(你不能在一个if 块之前结束while 循环例如,您结束 if 块),并且您永远不会在 VB 中将End单独放在一行中。 -
@JoelCoehoorn :实际上你可以,看:
EndStatement | Microsoft Docs 它基本上等同于Environment.Exit(0)。 -
是:阅读异常处理。它们在这里完全合适。
-
@JoelCoehoorn 俗话说,您可能忘记的 VB.NET 比其他人学到的更多。 ;-)
-
@Visual Vincent:事实上,如果传递的值不可接受,我想做的是暂停所有程序。由于验证函数实际上在类内部,在类初始化期间执行数据控制流并最终使程序对一些错误值做出反应的最佳策略/最佳实践是什么?