无法弄清楚为什么另一个方法作为参数重复

时间:2018-09-28 17:23:35

标签: c# methods arguments repeat

我是新手,刚开始学习C#,因此您必须使用方法创建自己的伪登录系统,这是一个挑战。讲师将方法用作其他方法中的参数很好,但是当我这样做时,无论我不知道是什么原因,它都在重复。

我已经看了几个小时,摆弄着东西,但一直没有找到相关的解决方案,所以我创建了这个帐户。请帮忙!

using System; //namespace
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2 
{
    class Program 
    {
        public static void Main(string[] args)
        {
            Login(RegisterName(), RegisterPassword());
            Console.ReadKey();
        }

        public static string RegisterName()
        {
            string userName = "Error. ";  

            Console.WriteLine("Hello, let us begin registration.\n\nPlease enter your desired username. ");
            userName = Console.ReadLine();
            Console.Write("{0} has been registered as your username. ", userName);

            return userName;   
        }

        static string RegisterPassword()
        {
            string userPassword = "Error. ";

            Console.WriteLine("\nNow please enter your desired password. ");
            userPassword = Console.ReadLine();
            Console.Write("{0} has been registered as your password.\n\nAccount registration successful.\n", userPassword);

            return userPassword;  
        }

        static void Login(string _userName, string _userPassword)
        {
            string enteredName;
            string enteredPassword;

            Console.WriteLine("Let us login; first, enter your username. ");
            enteredName = Console.ReadLine();
            Console.WriteLine("Next, your password. ");
            enteredPassword = Console.ReadLine();

            // check
            if (enteredName.Equals( RegisterName() ) && enteredPassword.Equals( RegisterPassword() ) ) 
            {
                Console.WriteLine("Successful login. Welcome {0}. ", enteredName);
            } 
            else 
            {
                Console.WriteLine("Your username or password does not match any known registration. Have you forgotten your details? Please try again or register if you haven't already. ");
            }
        }
    }
}

这是输出:

Hello, let us begin registration.

Please enter your desired username. 
test 
test has been registered as your username. 
Now please enter your desired password. 
test 
test has been registered as your password.


Account registration successful. 
Let us login; first, enter your username. 

test 
Next, your password. 

test 
Hello, let us begin registration.

Please enter your desired username. 
test 
test has been registered as your username. Now please enter your desired password. 
test 
test has been registered as your password.

Account registration successful. 
Successful login. Welcome test.

(请原谅输出的草率格式,而我实际上并未使用的使用内容只是教员iirc留下的内容。)

1 个答案:

答案 0 :(得分:1)

if (enteredName.Equals( RegisterName() ) && enteredPassword.Equals( RegisterPassword()) ) {
        Console.WriteLine("Successful login. Welcome {0}. ", enteredName);
    }

这两次调用该函数。您在这里真正想做的是:

if (enteredName.Equals( _userName ) && enteredPassword.Equals( _userPassword) ) {
        Console.WriteLine("Successful login. Welcome {0}. ", enteredName);
    }

这是做这件事的很草率的方法,但是从外观上看,这只是出于学习目的。

相关问题