可选参数必须出现在c#中的所有必需参数之后

Rav*_*dam 0 c# optional-parameters

方法1

public List<IndentItems> GetIndentsByStatus(string projectAddress, string jobAddress, string currentStatus,string ddlevent)    
{    
    List<IndentItems> indentItems =null;
    indentItems = GetIndentFilledInfo(filterdReports, false,null ,ddlevent);
    return indentItems;    
}
Run Code Online (Sandbox Code Playgroud)

方法2

public List<IndentItems> GetIndentFilledInfo(List<SurveyFeedback> surveyFeedbacks, bool hasupdate, string indentType = null,string ddlevent)    
{
}
Run Code Online (Sandbox Code Playgroud)

从Method1我调用第二个方法,在method2中EventID我将获取数据.但它显示编译器错误消息:

CS1737:可选参数必须出现在所有必需参数之后.

Sel*_*enç 9

您需要将可选参数移动到参数列表的末尾:

来自MSDN:

在任何必需参数之后,可选参数在参数列表的末尾定义.如果调用者为一系列可选参数中的任何一个提供参数,则它必须为所有前面的可选参数提供参数.不支持参数列表中以逗号分隔的间隙.例如,在以下代码中,实例方法ExampleMethod定义了一个必需参数和两个可选参数.

public List<IndentItems> GetIndentFilledInfo(
        List<SurveyFeedback> surveyFeedbacks, 
        bool hasupdate,
        string ddlevent,
        string indentType = null)
Run Code Online (Sandbox Code Playgroud)

更多阅读这里


Moh*_*deh 5

可选参数应该位于所有方法参数之后:

public List<IndentItems> GetIndentFilledInfo(
    List<SurveyFeedback> surveyFeedbacks, 
    bool hasupdate, 
    string ddlevent,
    string indentType = null)    
{
    // Codes here
}
Run Code Online (Sandbox Code Playgroud)

微软软件定义网络