VB.Net 代码比较 - 哪个更好,为啥?
Posted
技术标签:
【中文标题】VB.Net 代码比较 - 哪个更好,为啥?【英文标题】:VB.Net Code comparision - which one is better and why?VB.Net 代码比较 - 哪个更好,为什么? 【发布时间】:2020-04-17 12:48:10 【问题描述】:这是我的第一篇文章。 你能给我一些提示,哪些代码更好,为什么? 主要是这两个代码的作用相同,但使用了其他方法。 干杯
第一密码
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Age.Click
Dim age As Integer
Dim boxinput As String
boxinput = InputBox("Please input your age", "Age input", "28")
Try
age = boxinput
Catch ex As Exception
If boxinput = "" Then
MessageBox.Show("You clicked cancel!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Else
MessageBox.Show("Correct your age!" & Environment.NewLine & "Input number only!")
End If
End Try
End Sub
第二个密码
Private Sub Age2_Click(sender As Object, e As EventArgs) Handles Age2.Click
Dim age As Integer
Dim boxinput As String
boxinput = InputBox("Please input your age", "Age input", "28")
If boxinput = "" Then
MessageBox.Show("You clicked cancel!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
ElseIf IsNumeric(boxinput) Then
age = CInt(boxinput)
Else
MessageBox.Show("Correct your age!" & Environment.NewLine & "Input number only!")
End If
End Sub
【问题讨论】:
首先,请确保 Visual Studio 使用的是Option Strict On
。微软一直“忘记”让它成为新项目的默认设置。然后它可以自动向您显示第一个示例中的错误,并为您在新项目中防止此类错误。
是的,你是对的。我忘记了这个选项。这表明我认为第二个代码更可取。谢谢!
【参考方案1】:
还有 Integer.TryParse (如果使用其他数字,它们也有 TryParse)。此外,正如 cmets 中所指出的,您应该始终为控件使用有意义的名称,表单名称也是如此。
表单名称应反映表单的用途,同样,按钮名称应反映操作,例如btnGetPersonAgeButton、GetPersonAgeButton 等
考虑以下
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim age As Integer
Dim boxinput As String
boxinput = InputBox("Please input your age", "Age input", "28")
If Integer.TryParse(boxinput, age) Then
MessageBox.Show($"Age is age")
Else
MessageBox.Show($"'boxinput' must be a number")
End If
End Sub
End Class
【讨论】:
我想我也会在表单和按钮命名以及在方法顶部声明变量而不是在使用点附近声明变量 :) @CaiusJard - 很好,我在微软论坛上回答问题时会这样做,有时它会坚持但并非总是如此。 我认为这不能回答“哪个更好,为什么?”的问题。另一个答案确实回答了这个问题。 TryParse 在这里看起来确实更体面。谢谢!【参考方案2】:第二个选项更可取。
解释抄自here:
抛出异常是昂贵的。不要使用异常来控制应用程序流。如果您可以合理地预期在正常运行代码的过程中会发生一系列事件,那么您可能不应该在这种情况下抛出任何异常。
【讨论】:
这完全解释了问题。谢谢;)以上是关于VB.Net 代码比较 - 哪个更好,为啥?的主要内容,如果未能解决你的问题,请参考以下文章