Single.Parse()与仅使用Console.ReadLine()读取浮点值

时间:2018-10-05 14:09:35

标签: vb.net

我可以添加从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

谢谢

3 个答案:

答案 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