我正在浏览MVC tutorial并在函数开头看到这行代码:
private void PopulateDepartmentsDropDownList(object selectedDepartment = null)
测试后,我可以看到该功能有效,但我不明白 函数参数是如何工作的。 object selectedDepartment = null
做了什么?
我已经完成了一般的互联网搜索,但还没有找到答案。
我想我的问题确实有两个方面:
= null
部分有什么作用?答案 0 :(得分:5)
这意味着该参数将为null,除非您决定传递某些内容。换句话说,它是可选的。
可以做到,并没有任何问题。它很常见。
答案 1 :(得分:1)
这意味着您可以致电
PopulateDepartmentsDropDownList()
或
PopulateDepartmentsDropDownList("something")
因为编译器会将第一个转换为
PopulateDepartmentsDropDownList(null)
此功能称为Optional Arguments
我建议你阅读this blog post
答案 2 :(得分:1)
= null
是参数的默认值,它是功能等同的,就像你有
private void PopulateDepartmentsDropDownList()
{
PopulateDepartmentsDropDownList(null);
}
private void PopulateDepartmentsDropDownList(object selectedDepartment)
{
//Your code here.
}
因此,如果您可以调用没有参数PopulateDepartmentsDropDownList()
的函数,它将调用1个参数版本并传入null。
答案 3 :(得分:0)
这会将参数设置为默认值(如果未提供),并在未提供参数时防止编译时错误。参见:
Setting the default value of a C# Optional Parameter
基本上这个参数现在是可选的,所以你可以用以下两种方式之一调用函数:
PopulateDepartmentsDropDownList() //selectedDepartment will be set to null as it is not provided
或强>
PopulateDepartmentsDropDownList(myObject) //selectedDepartment will become myObject