C# 检查方法是否第一次运行。C

C# 检查方法是否第一次运行。C,c#,methods,C#,Methods,我目前正在尝试学习C语言,我来自另一种语言,所以到目前为止,学习C语言是一件轻而易举的事。然而,我正在创建一个控制台应用程序,用户在其中输入用户名和密码,然后登录。当他们登录时,我只是简单地询问他们想要什么,然后他们输入他们的请求。现在的问题是,每当他们传递if/else if/else语句时,我都会将它们移动到一个新的方法,该方法用Hello,welcome,Please输入一个请求来迎接他们。在他们输入请求后,我希望控制台只说“请输入请求”。因此,我想检查该方法是否第一次运行。关于如何做的任

我目前正在尝试学习C语言,我来自另一种语言,所以到目前为止,学习C语言是一件轻而易举的事。然而,我正在创建一个控制台应用程序,用户在其中输入用户名和密码,然后登录。当他们登录时,我只是简单地询问他们想要什么,然后他们输入他们的请求。现在的问题是,每当他们传递if/else if/else语句时,我都会将它们移动到一个新的方法,该方法用Hello,welcome,Please输入一个请求来迎接他们。在他们输入请求后,我希望控制台只说“请输入请求”。因此,我想检查该方法是否第一次运行。关于如何做的任何想法

我想这应该可以

using System;
namespace ConsoleApplication1
{
    class Program
    {
        static bool hasRun = false;
        static void Main(string[] args)
        {
            GreetUser();// first call
            GreetUser();// second call
        }
        private static void GreetUser()
        {
            var message = "Hello, welcome. Please enter a request: ";
            // could be refactored to
            if (hasRun)
            {
                message = "Please enter a request: ";
            }
            Console.WriteLine(message);
            var requestText = Console.ReadLine();
            hasRun = true;
        }
    }
}
第一次呼叫GreetUser将是:

你好,欢迎。请输入请求:

对GreetUser的第二次和后续呼叫将是:

请输入请求:

编辑: 哦,有一件事我忘记了,你可以使用三元运算符进一步重构消息:

private static void GreetUser()
{
    var message = (!hasRun ? "Hello, welcome. " : string.Empty) + "Please enter a request: ";
    Console.WriteLine(message);
    var requestText = Console.ReadLine();
    hasRun = true;
}

将4行代码转换为1

您应该做的第一件事是向我们展示您的代码!有一百万种方法可以满足您的需求,因此查看您的代码可以让我们知道哪种方法最适合您。