我可以添加从Console.ReadLine()
获得的浮点值,并将它们加在一起,而不必使用Single.Parse(Console.ReadLine())
。使用Single.Parse()
是更好的做法吗?
例如:
Sub Main()
Dim num1, num2, sum As Single
Console.WriteLine("Enter two floating point numbers:")
'get user input
Console.Write("First number: ")
num1 = Console.ReadLine()
'num1 = Single.Parse(Console.ReadLine())
Console.Write("Second number: ")
num2 = Console.ReadLine()
'num2 = Single.Parse(Console.ReadLine())
sum = num1 + num2
Console.WriteLine("sum of " & num1 & " and " & num2 & " is: " & sum)
End Sub
谢谢
答案 0 :(得分:2)
您的代码将仅使用Option Strict Off
进行编译。如果您转动Option Strict On
,将不得不执行某些操作以显式转换数据类型,例如Single.Parse
。
我猜想是否“更好”是一个意见问题,但是我可以告诉您,大多数高级开发人员都更愿意转向Option Strict On
。它更安全,更明确,并且与其他语言(例如C#)更兼容。
另一个优点是,如果要将代码从带有Option Strict Off
的项目复制或移动到带有Option Strict On
的项目中,则将不得不解决所有问题。但是,当以另一种方式移动代码时,将没有任何要修复的东西。因此,即使使用相同的语言,它也更兼容这种方式。
答案 1 :(得分:1)
优良作法是启用Option Strict。这将向您显示确实需要将字符串正确转换为Single。这也将有助于添加适当的错误处理。
答案 2 :(得分:1)
解析始终是一个好习惯。来自文本的输入将是一个字符串,您不想对字符串进行数学运算。
检查输入是否正确也是一种很好的做法,这是“ TryParse”的来源。这是使用先前代码的示例:
Sub Main()
Dim num1, num2, sum As Single
Console.WriteLine("Enter two decimal numbers:")
Console.Write("First number: ")
Do While Not Single.TryParse(Console.ReadLine(), num1)
Console.Write("Not valid. Please enter a valid decimal number... " & Environment.NewLine)
Console.Write("First number: ")
Loop
Console.Write("Second number: ")
Do While Not Single.TryParse(Console.ReadLine(), num2)
Console.Write("Not valid. Please enter a valid decimal number... " & Environment.NewLine)
Console.Write("Second number: ")
Loop
sum = num1 + num2
Console.WriteLine("sum of " & num1 & " and " & num2 & " is: " & sum)
Console.ReadLine()
End Sub