在程序中,我们通常需要从用户获取输入。一种常见的方式是在控制台中使用Console应用程序。因此,我们需要了解如何在C#应用程序中使用Console.ReadLine方法从用户获取输入。 Console.ReadLine方法从标准输入流中读取下一行字符串。该方法会一直阻塞直到用户输入一行文本并按下回车键。让我们深入了解下如何使用Console.ReadLine。
准备工作
首先,我们需要创建一个控制台应用程序,并打开 Program.cs 文件。接着,我们可以添加代码来读取用户输入。
使用 Console.ReadLine 方法从用户获取输入
Console.ReadLine方法在C#中是用于从控制台读取用户输入的最简单的方法之一。下面是一个简单例子,演示如何从用户获取输入。该示例要求输入用户名,并在控制台中显示出来。
```
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter your name:");
string name = Console.ReadLine();
Console.WriteLine("Hello, " + name + "!");
Console.ReadKey();
}
}
}
```
在这个示例中,我们使用了 Console.ReadLine 方法来从控制台中读取用户的输入到变量 name 中。之后,我们使用字符串连接运算符“+”来将字符串“Hello,”、“name”和“!”连接起来以生成消息。最后,使用 Console.ReadKey 方法等待按下任意键在屏幕上继续。
在控制台中,输出将如下所示:
```
Please enter your name:
Andy
Hello, Andy!
```
我们可以看到,输入的名称储存在name变量中,并在屏幕上用“Hello,”和“!”拼接串联输出。
从用户获取数字
当获取用户输入时,我们不仅需要处理字符串,有时还需要处理数字或其他数据类型。例如,我们可能需要从用户获取数字,并使用它们执行一些数学运算。
如下所示,使用 Console.ReadLine 方法从用户获取整数:
```
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter a number:");
int number = Convert.ToInt32(Console.ReadLine());
int result = number * 2;
Console.WriteLine("The result is " + result);
Console.ReadKey();
}
}
}
```
在这个示例中,我们要求用户输入一个数字,并将其存储在 number 变量中。然后,我们将 number 变量乘以2,将结果储存在 result 变量中,并在控制台上显示结果。
在控制台中,输出将如下所示:
```
Please enter a number:
5
The result is 10
```
需要注意的是,由于 Console.ReadLine 方法返回一个字符串,而我们需要一个整数,我们必须使用 Convert.ToInt32 方法将输入字符串转换为整数类型。如果用户输入的内容不是有效的数字字符串,Convert.ToInt32 方法将抛出异常。
从用户获取多个输入
有时,我们需要在程序中从用户获取多个输入。例如,我们可能需要从用户获取姓名、年龄和电子邮件地址等信息。
和上面类似,假设我们需要从用户获取三个输入:
```
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Get user's name
Console.WriteLine("Please enter your name:");
string name = Console.ReadLine();
// Get user's age
Console.WriteLine("Please enter your age:");
int age = Convert.ToInt32(Console.ReadLine());
// Get user's email
Console.WriteLine("Please enter your email:");
string email = Console.ReadLine();
// Output the user's information
Console.WriteLine("Name: {0}", name);
Console.WriteLine("Age: {0}", age);
Console.WriteLine("Email: {0}", email);
Console.ReadKey();
}
}
}
```
在这个示例中,我们请求用户输入他们的姓名、年龄和电子邮件地址,并将它们分别存储在 name、age 和 email 变量中。之后,我们按照所需的格式将这些信息输出到控制台中。
在控制台中,输出将如下所示:
```
Please enter your name:
Andy
Please enter your age:
30
Please enter your email:
andy@example.com
Name: Andy
Age: 30
Email: andy@example.com
```
从其他流中读取输入
除了从控制台中读取用户的输入之外,我们也可以从其他流中获取输入。例如,我们可以将 Console.In 流重定向到一个文件,从该文件中读取输入。
假设我们有一个文本文件 “input.txt”,包含以下内容:
```
Hello World!
```
下面的代码演示了如何将Console.In重定向到“input.txt”文件,并从该文件中读取输入。
```
using System;
using System.IO;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.SetIn(new StreamReader("input.txt"));
string userInput = Console.ReadLine();
Console.WriteLine("You entered: " + userInput);
Console.ReadKey();
}
}
}
```
在这个示例中,我们使用 Console.SetIn 方法将 Console.In 流重定向到“input.txt”文件。然后,我们使用 Console.ReadLine 方法读取标准输入流中的下一行文本,即文件中的文本。
在控制台中,输出将如下所示:
```
You entered: Hello World!
```
总结
使用 Console.ReadLine 方法从用户获取输入是 C# 中一个非常常见的任务。通过调用该方法,我们可以轻松地从控制台或其他流中获取用户键入的字符串。此外,在将字符串转换为其他数据类型时,还应当使用正确的数据类型转换方法来避免出现异常。