可选参数必须出现在c#中的所有必需参数之后
方法1
public List GetIndentsByStatus(string projectAddress, string jobAddress, string currentStatus,string ddlevent) { List indentItems =null; indentItems = GetIndentFilledInfo(filterdReports, false,null ,ddlevent); return indentItems; }
方法2
public List GetIndentFilledInfo(List surveyFeedbacks, bool hasupdate, string indentType = null,string ddlevent) { }
从Method1我调用第二个方法,在method2中基于EventID
我将获取数据。 但它显示编译器错误消息:
CS1737:可选参数必须出现在所有必需参数之后。
您需要将可选参数移动到参数列表的末尾:
来自MSDN:
在任何必需参数之后,可选参数在参数列表的末尾定义。 如果调用者为一系列可选参数中的任何一个提供参数,则它必须为所有前面的可选参数提供参数。 不支持参数列表中以逗号分隔的间隙。 例如,在以下代码中,实例方法ExampleMethod定义了一个必需参数和两个可选参数。
public List GetIndentFilledInfo( List surveyFeedbacks, bool hasupdate, string ddlevent, string indentType = null)
更多阅读
可选的params应该在你们所有的方法参数之后:
public List GetIndentFilledInfo( List surveyFeedbacks, bool hasupdate, string ddlevent, string indentType = null) { // Codes here }
MSDN