方法 'run' 没有重载需要 1 个参数
No overload for method 'run' takes 1 arguments
当我 运行 遇到这个小问题时,我正在 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);
}
}
这是登录 class..我猜 public static 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);
}
}
您在这一行中传递了一个参数:
login.run(arg);
方法run()
当方法的签名是这样的时候:
public static void run(string EnteredUser, string EnteredPassword, string User1CorrectName, string User1CorrectCode, string User2CorrectName = "", string User2CorrectCode = "")
如您所见,前 4 个参数是必需的,因此您应该将它们传递给函数。或者修改运行的签名。
最后2个参数有默认值,空字符串""。因此,如果您不需要这些值,则无法传递它们(如果您不将其作为参数传递,则会为其分配默认值)。
阅读此文档以了解参数和默认值 MSDN 以获得带有许多示例的完整说明。
在那种情况下,我肯定会使用 命名参数 ,但这只是一个意见。阅读文档,如果你不明白什么就问。
当我 运行 遇到这个小问题时,我正在 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);
}
}
这是登录 class..我猜 public static 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);
}
}
您在这一行中传递了一个参数:
login.run(arg);
方法run()
当方法的签名是这样的时候:
public static void run(string EnteredUser, string EnteredPassword, string User1CorrectName, string User1CorrectCode, string User2CorrectName = "", string User2CorrectCode = "")
如您所见,前 4 个参数是必需的,因此您应该将它们传递给函数。或者修改运行的签名。
最后2个参数有默认值,空字符串""。因此,如果您不需要这些值,则无法传递它们(如果您不将其作为参数传递,则会为其分配默认值)。
阅读此文档以了解参数和默认值 MSDN 以获得带有许多示例的完整说明。
在那种情况下,我肯定会使用 命名参数 ,但这只是一个意见。阅读文档,如果你不明白什么就问。