如何修复此错误,"There is no arguments given that corresponds to the required formal parameter"?

how do I fix this error, "There is no arguments given that corresponds to the required formal parameter"?

如果用户年龄小于 21 或||,我将在 else if 中调用一个方法来使用 for >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())
        {

        }

调用函数时需要传2个参数

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

    }

您不需要在参数中包含 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

您声明了一个方法,该方法具有两个类型为字符串和 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 的 return 类型也是一个整数,但是 if 语句只计算布尔表达式。

您想要如下内容:

int age = GetAge('08/18/1990', DateTime.Now);
if (age < 21)
{
    /* Do something. */
}
else if (age > 75)
{
    /* Do something. */
}