我如何解决此错误,“没有给出与所需形式参数相对应的参数”?

问题描述 投票:-1回答:3

如果要用于用户年龄小于21或||,我将在else内调用方法。 > 75输出消息框。当我尝试调用该方法时会出现此错误

这是我的代码

 public int GetAge(string DOB, DateTime startDate)
    {
        int driverAge = startDate.Year - DateTime.Parse(DOB).Year;

        if (startDate.Month < DateTime.Parse(DOB).Month || (startDate.Month == DateTime.Parse(DOB).Month && startDate.Day < DateTime.Parse(DOB).Day))
        {
            driverAge--;

        }
            return driverAge;

    }

...

else if (GetAge())
        {

        }
c# if-statement methods calculation
3个回答
0
投票

调用函数时应传递两个参数

if (GetAge("27/12/2019",new DateTime(2010, 8, 18)) < 21 || GetAge("27/12/2019",new DateTime(2010, 8, 18)) > 75)
    {

    }

0
投票

您不需要在参数中包含startDate。您可以在函数中声明它并提供一个可以作为日期解析为参数的字符串]

    public int GetAge(string DOB)
        {
            DateTime startDate = new Date();
            int driverAge = startDate.Year - DateTime.Parse(DOB).Year;

            if (startDate.Month < DateTime.Parse(DOB).Month || (startDate.Month == DateTime.Parse(DOB).Month && startDate.Day < DateTime.Parse(DOB).Day))
            {
                driverAge--;

            }
                return driverAge;

        }

并这样称呼它

GetAge("You date string comes here")<21 || GetAge("You date string comes here") > 75

0
投票

您已经声明了一个具有两个参数类型为string和DateTime的方法:

public int GetAge(string DOB, DateTime startDate)
{
    int driverAge = startDate.Year - DateTime.Parse(DOB).Year;

    if (startDate.Month < DateTime.Parse(DOB).Month
        || (startDate.Month == DateTime.Parse(DOB).Month
            && startDate.Day < DateTime.Parse(DOB).Day))
    {
        driverAge--;
    }
    return driverAge;
}

但是调用时没有任何参数:

else if (GetAge())
{

}

此外,GetAge的返回类型是整数,但是if语句仅计算布尔表达式。

您想要以下内容:

int age = GetAge('08/18/1990', DateTime.Now);
if (age < 21)
{
    /* Do something. */
}
else if (age > 75)
{
    /* Do something. */
}
© www.soinside.com 2019 - 2024. All rights reserved.