当C#函数参数包含“=null”时,这意味着什么
本文关键字:什么 意味着 null 函数 参数 包含 | 更新日期: 2023-09-27 17:59:54
我正在学习MVC教程,并在函数开头看到这行代码:
private void PopulateDepartmentsDropDownList(object selectedDepartment = null)
测试后,我可以看到函数的工作原理,但我不明白函数参数是如何工作的。object selectedDepartment = null
做什么?
我在互联网上做了一个普通的搜索,但还没有找到答案。
我想我的问题实际上有两个方面:
- 参数的
= null
部分做什么 - 是不是可以,但不一定应该
-
这意味着该参数将为null,除非您决定传递一些东西。换句话说,它是可选的。
-
这是可以做到的,没有错。这是很常见的做法。
这意味着您可以调用
PopulateDepartmentsDropDownList()
或
PopulateDepartmentsDropDownList("something")
两者都是因为编译器会将第一个转换为
PopulateDepartmentsDropDownList(null)
此功能称为可选参数
我建议你阅读这篇博客文章
= null
是参数的默认值,它是功能等效的,就像你有一样
private void PopulateDepartmentsDropDownList()
{
PopulateDepartmentsDropDownList(null);
}
private void PopulateDepartmentsDropDownList(object selectedDepartment)
{
//Your code here.
}
因此,如果您可以调用不带参数PopulateDepartmentsDropDownList()
的函数,它将调用1 permeter版本并传入null。
这将参数设置为默认值(如果未提供),并在未提供参数的情况下防止编译时出错。参见:
设置C#可选参数的默认值
基本上,这个参数现在是可选的,所以您可以通过以下两种方式之一调用函数:
PopulateDepartmentsDropDownList() //selectedDepartment will be set to null as it is not provided
或
PopulateDepartmentsDropDownList(myObject) //selectedDepartment will become myObject