无法弄清楚为什么方法作为另一个方法中的参数重复
Can't figure out why method as argument in another method is repeating
我是新手,刚开始学习 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留下的东西。)
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);
}
这是一种非常草率的方式来做这样的事情,但从它的外观来看,你只是为了学习目的而这样做。
我是新手,刚开始学习 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留下的东西。)
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);
}
这是一种非常草率的方式来做这样的事情,但从它的外观来看,你只是为了学习目的而这样做。