在VB.NET中初始化类时是否可以执行“数据控制流”?
在下面的代码中,我尝试在if..then块中插入End语句,检查传递给构造函数的温度值是否在-20到+50度之间,如果不满足要求,则最终结束程序执行。VisualStudio告诉我们不能在类库项目中使用End语句。检查传递给类构造函数的参数的正确性的良好实践/方法是什么?我已经读到,不应该使用异常来执行数据控制流,因为异常应该用来解决意外行为,在这种情况下,我希望用户可能会尝试插入一个超出该类有意义的允许范围的值 多谢各位在VB.NET中初始化类时是否可以执行“数据控制流”?,.net,vb.net,oop,.net,Vb.net,Oop,在下面的代码中,我尝试在if..then块中插入End语句,检查传递给构造函数的温度值是否在-20到+50度之间,如果不满足要求,则最终结束程序执行。VisualStudio告诉我们不能在类库项目中使用End语句。检查传递给类构造函数的参数的正确性的良好实践/方法是什么?我已经读到,不应该使用异常来执行数据控制流,因为异常应该用来解决意外行为,在这种情况下,我希望用户可能会尝试插入一个超出该类有意义的允许范围的值 多谢各位 Public Class WaterGlycoleMixture
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
如果传递了错误的参数,则绝对可以抛出异常。NET框架定义了一个股票异常类,正是出于这个原因
在图书馆的情况下尤其如此。应该由调用代码以适当的方式处理异常。如果它是GUI应用程序,那么它可以向用户显示消息。如果是Windows服务,那么日志记录可能更合适。图书馆不应作出假设 这是无效的语法。没有所谓的结束语。可以结束If块、While循环、类或名称空间等。但所有这些都必须按照正确的顺序结束。例如,在结束If块之前,不能在If块的内部结束While循环,而且在VB中永远不会在一行上单独结束。@JoelCoehoorn:实际上你可以,请参阅:它基本上等同于Environment.Exit0.Yes:了解异常处理。它们在这里是完全合适的。@JoelCoehoorn俗话说,你可能忘记了VB.NET比其他人学到的更多-@VisualVincent:事实上,如果传递的值不可接受,我要做的是暂停所有程序。由于验证函数实际上在类内部,因此在类初始化期间执行数据控制流并最终使程序对某些错误值作出反应的最佳策略/良好实践是什么?谢谢,我没有注意到ArgumentException。我对编程很陌生。