是否可以从用户定义的函数中获取用户的输入?

约翰·帕帕

下面是两个数字相加的代码。我要求用户输入并在函数GetValidateInput()中进行验证。代码可以正常工作,但是从用户定义的函数中请求用户输入是正确的方法,还是我们应该在Main()中执行此操作,并且仅验证用户定义的函数中的数据(以便可以将该函数重用于其他验证中)在其他一些地方)。什么是正确的方法?

class Solution
{
    static void Main(string[] args)
    {

        Console.WriteLine("Enter the First Number");
        int firstNumber = GetValidateInput();

        Console.WriteLine("Enter the Second Number");
        int secondNumber = GetValidateInput();

        int sum = SolveMeFirst(firstNumber, secondNumber);
        Console.WriteLine("The Sum is {0}",sum);

        Console.ReadLine();
    }

    static int SolveMeFirst(int firstNumber, int secondNumber)
    {
        return firstNumber + secondNumber;
    }


    static int GetValidateInput()
    {
        bool isValid = false;
        string number = null;
        int result;
        do
        {
            number = Console.ReadLine();
            if (int.TryParse(number, out result))
                isValid = true;
            else
                Console.WriteLine("Invalid Number, please re-enter");

        } while (!isValid);
        return result;
    }
}
鲁弗斯

我通常会尝试将UI代码与业务逻辑代码分开,这意味着,在大多数情况下,我没有调用方法Console.ReadLineConsole.WriteLine大多数方法。

但是,如果您要通过控制台进行大量的用户交互,那么拥有一个进行输入验证的帮助程序库至关重要。我有一个库,其中包含与您的方法类似的方法,只是将提示作为参数显示给用户,因此可以重用该方法。最简单的版本可能如下所示:

public static int GetIntFromUser(string prompt)
{
    int input;

    do
    {
        Console.Write(prompt);
    } while (!int.TryParse(Console.ReadLine(), out input));

    return input;
}

然后您可以这样称呼它:

int firstNumber = GetIntFromUser("Enter the First Number");
int secondNumber = GetIntFromUser("Enter the Second Number");

对于不同类型,我有类似的方法,因此不必担心主代码中的数据验证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从嵌套函数中获取用户输入

如何获取用户输入并查看它是否在列表中

是否可以获取用户在UWP中编写的RichEditBox文本?

如何在PostgreSQL中获取用户定义的函数注释

获取用户输入

在JavaScript中获取用户输入

在bash脚本中获取用户输入

是否可以通过用户位置从Github Api获取用户

获取用户在 Python 中给出的函数

Keycloak:自定义ExecuteAction Mail,是否可以获取用户自定义属性?

是否可以从用户名或标签中获取用户对象或ID?[Discord.py]

是否可以在golang中使用反射来获取用户定义类型的基础类型?

从JtextArea获取用户输入

获取用户输入的字符

Excel VBA - 使用应用程序输入框获取用户选择的单元格 - 是否可以获取用户工作表详细信息?

C#XNA:使用类函数获取用户输入

如何在 Rasa 的自定义操作中获取用户输入?

如何获取用户输入并存储在自定义对象中?爪哇

npm启动后,是否有办法在终端中获取用户输入?

如何在golang中获取用户输入整数成函数

是否可以获取用户窗体中的框架数和框架中的选项按钮数?

是否可以获取用户来自哪个先前的网站

是否可以从AppConnect MobileIron Sdk获取用户名?

未经iOS许可,是否可以获取用户大概位置?

(Swift / iOS)是否可以从应用内购买中获取用户购买的物品?

是否可以在 Drupal 8 中获取用户的登录历史记录

无法从 html 中获取用户在 javascript 中的输入

在我的自定义表格中,我希望可以有15天的时间来从表格中获取用户ID。Date_diff函数不能正常工作?

获取用户输入作为脚本中的参数