满足所有要求后,必须出现可选参数

本文关键字:参数 满足 | 更新日期: 2023-09-27 18:09:51

我试图调试一些代码,其中有一个方法CalculateTuition,其中一个参数被命名为学分。我在运行时得到的错误是,"可选参数必须出现在所有必需参数之后"。此应用程序的目的是演示可以使用一个、两个或三个参数调用方法。我无法弄清楚必需参数和可选参数之间的区别。感谢您的宝贵时间!

public static void Main()
{
    Console.WriteLine("Tuition is {0}", Calculatetuition(15));
    Console.WriteLine("Tuition is {0}", CalculateTuition(15, 'O'));
    Console.WriteLine("Tuition is {0}", CalculateTuition(15, 'O', true));
}

public static double CalculateTuition(string code = "I", double credits,
         bool  scholarship = false)
{
    double tuition;
    const double RATE = 80.00;
    const double OUT_DISTRICT_FEE = 300.00;
    tuition = credits * RATE;
    if (code == 'I')
       tuition += OUT_DISTRICT_FEE;
    if (scholarship)
        tuition = 0;
    return tuition;
}

满足所有要求后,必须出现可选参数

public static double CalculateTuition(string code = "I", double credits, bool  scholarship = false)

code在这里是一个可选参数。如果调用方没有为code提供值,则其默认值将为"I"。然而,正如错误所述,可选参数不能出现在必需参数之前。将您的方法签名(并相应地更新用法)更改为:

public static double CalculateTuition(double credits, string code = "I", bool scholarship = false)

或者将code作为必选参数

public static double CalculateTuition(string code, double credits, bool  scholarship = false)