c# - 一种压缩多个阅读线的方法?

标签 c# readline

我是编程的新手,所以除了到目前为止我们在 into c# 类(class)中所做的工作外,我自己不太了解,但我几乎到处都在寻找一种压缩 readlines 的方法,以便程序将读取许多输入无需为用户输入的每个变量编写一个 readline。

        Console.WriteLine("Enter ID for Jane Doe: ");
        c.ID = Console.ReadLine();

        Console.WriteLine("Enter Insurance Name for Jane Doe: ");
        c.Insurance = Console.ReadLine();

        Console.WriteLine("Enter Height(In.) for Jane Doe: ");
        c.Height = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Enter Weight(lbs.) for Jane Doe: ");
        c.Weight = Convert.ToSingle(Console.ReadLine());

        Console.WriteLine("Enter Health Status for Jane Doe: ");
        c.HealthStatus = Console.ReadLine();

这个例子来自不久前的一些作业,但令我苦恼的是我找不到压缩代码的方法。 基本上我希望能够在一个写入行中请求所有信息,然后只使用一个读取行/其他方法来输入每个变量,用户在其中输入一个变量的信息,点击回车,然后重复,但经常需要。有什么办法可以做到这一点,还是我只需要处理重复问题?

最佳答案

一般来说,你只需要处理重复。它清晰、易于调试,而且真的没那么糟糕

现在,你可以这样做:

public class InputRequest
{
     public String Request {get; set;}
     public Action InputMethod {get; set;}
}

然后你会像这样创建:

List<InputRequest> allInputs = new List<InputRequest>();
allInputs.Add(new InputRequest() { Request = "Enter your height", 
    InputMethod = new Action(() => currentPerson.Height = Convert.ToInt32(Console.ReadLine())));

然后你可以遍历它们:

foreach (InputRequest req in allInputs)
{
    Console.WriteLine(req.Request);
    req.InputMethod();
}

但在所有现实中,为了稍微小一点的代码,这消除了很多可读性。我可能会在不同上下文中使用这样的模式,但在这里,您的代码没问题。

关于c# - 一种压缩多个阅读线的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28202668/

相关文章:

node.js - Nodejs readline 给出一些错误

javascript - NodeJS readline 有时会打印回第一个输入行(但并非总是如此,似乎是随机的)

c# - 存在、读写只需一步

c# - 如何获取和设置 WPF 文本框的当前光标位置

c# - 是否有与 FoxPro 的 addbs() 等效的 C#?

c# - Web 配置中的连接字符串被忽略

将 `getSymbols()` 的输出作为数据帧返回

android - 我可以将本地文本文件逐行读入字符串数组吗?

java - LineNumberReader 跳过文件的第一行

c# - ASP.NET MVC - ActionResult 调用另一个 JsonResult 来获取数据?