解析CSharp - 如何理解它

时间:2014-05-29 12:11:31

标签: c# parsing

就在几天前,我开始学习C#,我已经有一个理解基础知识的问题了......也许它只是语言障碍(我不是英语母语者) 。拜托,您能解释一下如何理解解析吗?例如:在创建一个非常简单的计算器时,我想读取第一个输入数字(这是一个变量a)。我使用这段代码:

float a = float.Parse(Console.ReadLine());

与其他号码的b相同:

float b = float.Parse(Console.ReadLine());  

我了解到float是小数位数的数据类型,那么这个特定的Parse()究竟代表什么?

显然,我试图在没有解析的情况下运行应用程序,它不会起作用,因为它将其作为字符串读取,但为什么呢?谢谢..

3 个答案:

答案 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了解详细信息。