Никакая перегрузка для метода 'run' не принимает 1 аргумента
Я создаю операционную систему в COSMOS, когда столкнулся с этой маленькой проблемой.
else if (HOLOOS.seperate(MyGlobals.input, 5) == "login")
{
if (MyGlobals.input == "login")
{
Console.Write(Commands.login.usage);
}
else
{
var arg = HOLOOS.rseperate(MyGlobals.input, 6, (MyGlobals.input.Length - 1));
arg = HOLOOS.GatherArgs(arg);
login.run(arg);
}
}
Это класс входа в систему.. Я думаю, что-то не так с общедоступным статическим запуском void?
class login
{
public static string CurrentUser;
public static void run(string EnteredUser, string EnteredPassword, string User1CorrectName, string User1CorrectCode, string User2CorrectName = "", string User2CorrectCode = "")
{
string EnteredHashedPassword = BashUtils.Encrypt(EnteredPassword);
//Check if the user name is
if (EnteredUser == User1CorrectName)
{
//If the user name entered is jacob, then check if the password is OK
if (EnteredHashedPassword == BashUtils.Encrypt(User1CorrectCode))
{
//If password is okay than login
Console.Write("You have sucessfully logged in as " + User1CorrectName);
CurrentUser = User1CorrectName;
cd.Path = "D:\\" + User1CorrectName + "\\";
}
//If the password is not OK then say so
else
{
Console.Write("Not correct password for " + User2CorrectName);
}
}
1 ответ
Вы передаете один аргумент в этой строке:
login.run(arg);
к методу run()
когда подпись метода такова:
public static void run(string EnteredUser, string EnteredPassword, string User1CorrectName, string User1CorrectCode, string User2CorrectName = "", string User2CorrectCode = "")
Как видите, первые 4 параметра являются обязательными, поэтому вы должны передать их в функцию. Или измененная подпись прогона.
Последние 2 параметра имеют значение по умолчанию, пустая строка "". Таким образом, вы не можете передать эти значения, если они вам не нужны (это будет присвоено значению по умолчанию, если вы не передадите его в качестве аргумента).
Прочитайте эту документацию для параметров и значений по умолчанию MSDN для полного описания со многими примерами.
В этом случае я бы определенно использовал именованные параметры, но это всего лишь мнение. Прочитайте документы, если вы чего-то не понимаете, просто спросите.