Nu există supraîncărcare pentru metoda ‘run’ care ia 1 argumente (Programare, C#, Sistem, Supraîncărcare, Dos, Cosmos)

Hige Mayhem a intrebat.

Cream un sistem de operare în COSMOS când am dat peste această mică problemă.

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);
    }
}

Aceasta este clasa de autentificare… Cred că ceva nu este în regulă cu public static void run?

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);
            }

        }

user3559349

Comentarii

  • metoda ta run are 4 argumente neopționale, în timp ce apelul tău are doar unul (arg) –  > Por HubertL.
1 răspunsuri
Cacho Santa

Treceți un singur argument în această linie:

login.run(arg);

la metoda run()

când semnătura metodei este aceasta:

public static void run(string EnteredUser, string EnteredPassword, string User1CorrectName, string User1CorrectCode, string User2CorrectName = "", string User2CorrectCode = "")

După cum puteți vedea, primii 4 parametri sunt obligatoriu, deci trebuie să îi transmiteți funcției. Sau ați modificat semnătura funcției.

Ultimii 2 parametri au o valoare implicită, șirul gol „”. Așadar, nu ați putea să nu treceți aceste valori dacă nu aveți nevoie de ele (aceasta va fi atribuită cu valoarea implicită dacă nu o treceți ca argument).

Citiți această documentație pentru parametrii și valorile implicite MSDN pentru o descriere completă cu multe exemple.

Eu aș alege cu siguranță parametrii numiți în acest caz, dar aceasta este doar o opinie. Citiți documentația, dacă nu înțelegeți ceva, întrebați.