use*_*287 1 c# console.readline
我正在学习C#(VS 2012 Professional),在下面的示例中,即使该Console.ReadLine()方法是代码块中的最后一条指令,控制台窗口也不会保持打开状态:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace testing
{
class Program
{
static void Main(string[] args)
{
// fahrenheit conversion example
Console.Write("Enter temp in fahrenheit: ");
double fahrenheit = Console.Read();
double celsius = (fahrenheit - 32.0) * (5.0 / 9.0);
Console.WriteLine("Celsius is: " + celsius);
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在Console.ReadLine()方法的实现中是否存在复杂性,或者代码块中可能存在冲突的代码?
您可能键入fahrenheit变量的值,然后按Return(Enter)键.这将获得Read调用中的值和ReadLine中的Enter.
改成
Console.Write("Enter temp in fahrenheit: ");
double fahrenheit;
string userInput = Console.ReadLine();
if(double.TryParse(userInput, out fahrenheit))
{
double celsius = (fahrenheit - 32.0) * (5.0 / 9.0);
Console.WriteLine("Celsius is: " + celsius);
}
else
{
Console.WriteLine("Non a valid double value");
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
此外,与Console.Read不同,Console.ReadLine返回一个字符串,因此您需要在尝试使用它之前解析并转换为double.这可以通过double.TryParse来完成,当用户没有键入有效的数字double时,它将返回false
Console.Read的另一个缺点是你需要在循环中调用它来读取用户键入的所有字符,直到Enter.如果您尝试转换12.8,则需要使用与Console.Read完全不同的代码.(查看上面链接中的MSDN示例)
| 归档时间: |
|
| 查看次数: |
12726 次 |
| 最近记录: |