就在几天前,我开始学习C#,我已经有一个理解基础知识的问题了......也许它只是语言障碍(我不是英语母语者) 。拜托,您能解释一下如何理解解析吗?例如:在创建一个非常简单的计算器时,我想读取第一个输入数字(这是一个变量a
)。我使用这段代码:
float a = float.Parse(Console.ReadLine());
与其他号码的b
相同:
float b = float.Parse(Console.ReadLine());
我了解到float
是小数位数的数据类型,那么这个特定的Parse()
究竟代表什么?
显然,我试图在没有解析的情况下运行应用程序,它不会起作用,因为它将其作为字符串读取,但为什么呢?谢谢..
答案 0 :(得分:3)
Console.ReadLine()
返回string
,代表一段文字。因此,从计算机的角度来看,调用Console.ReadLine()
后的内容是一段文字。它可能包含也可能不包含文本“6.0”,但从计算机的角度来看,它只是一段文本。因此,您无法使用它来添加,减去等。
使用float.Parse(...)
方法,告诉计算机:“这段文字实际上代表一个浮点数,请你阅读文本并给我一个数字,这样我就可以开始做数学了吗?”。
答案 1 :(得分:2)
Console.ReadLine读取用户输入的文本并将其返回给程序,以便您可以根据需要进行操作。因此,ReadLine方法返回string。
如果你想使用小数(检查decimal class而不是float),你需要将字符串(一个字符序列)转换为你想要的类型的数字,这是float.Parse进来的地方:
float.Parse接受一个字符串,如果可能,返回一个浮点值。
几乎每个类型都包含Parse方法,该方法用于将字符串转换为调用字符串。
答案 2 :(得分:2)
您正在使用的方法float.Parse()
只是采用String
输入值的许多此类方法之一,并尝试将其转换为目标类型,此处为float
。
然而,有一个更安全的替代方案,它是TryParse()
:
float a;
if (float.TryParse(Console.ReadLine(), out a))
{
//do something with your new float 'a'
}
在任何一种情况下,您都要求框架检查您提供的值,并尝试转换为请求的类型。这个主题可能非常深入,因此您需要参考MSDN了解详细信息。