using System;
namespace SimpleweightConversion
{
public class PoundstoKilos
{
public static void Main()
{
double pounds = 0.0;
Console.Write("How many pounds? ");
double.TryParse(Console.ReadLine(), out pounds);
double kilograms = pounds * 0.453592;
Console.WriteLine("{0} pounds is equal to {1} kilograms", pounds,
kilograms);
Console.WriteLine("Press enter to exit.");
Console.ReadLine();
}
}
}
我正在尝试学习C#,我创建了这段代码来将磅数转换为千克,我添加了tryparse位以避免用户在程序中抛出数字以外的错误,并且它有效!我遇到的问题是,它没有明确显示何时将用户输入分配给磅变量,因为一开始,磅变量的值为0.0,但是在某些时候,用户提供的值被分配给了英镑变量,或者至少是我认为正在发生的事情。
答案 0 :(得分:2)
从Microsoft Docs开始,TryParse()的语法为:
public static bool TryParse(
string s,
out double result
)
这意味着如果字符串s
是数字,则其解析值将立即分配给变量result
。
在代码中,您有double.TryParse(Console.ReadLine(), out pounds);
行
在这种情况下,来自控制台的输入将解析为双精度,并在可能的情况下分配给pounds
。
答案 1 :(得分:1)
在pounds
方法中,用户输入被分配给TryParse()
变量。
out
修饰符表示参数正在通过引用传递-这意味着方法调用中对参数(在这种情况下为pounds
)所做的任何更改都将应用于实际变量。
答案 2 :(得分:0)
当您使用控制台接受用户输入时,将分配该值。 ReadLine()方法。 “即double.TryParse(Console.ReadLine(),以磅为单位);” 用户的输入被提取到磅变量中。
答案 3 :(得分:0)
其他答案已说明您的错误。我以为我只是向您展示如何编写代码以使其更易于理解:
public class PoundsToKilos
{
public static void Main()
{
double pounds = 0.0;
Console.Write("How many pounds? ");
if (double.TryParse(Console.ReadLine(), out pounds))
{
//`pounds` has been assigned a value
double kilograms = pounds * 0.453592;
Console.WriteLine("{0} pounds is equal to {1} kilograms", pounds, kilograms);
}
else
{
//`pounds` has NOT been assigned a value
Console.WriteLine("You didn't enter a valid number.");
}
Console.WriteLine("Press enter to exit.");
Console.ReadLine();
}
}