我对C#.NET很陌生,我有以下疑问。
在我正在处理的页面上,我找到了以下链接:
<a class="ui-btn-inline ui-btn ui-icon-delete ui-btn-icon-notext ui-corner-all" href="@Url.Action("Delete", "Groups", new { id = item.gruppoId })">Delete</a>
此链接在 GroupsController 类上调用 Delete()方法。
好的,这是这个方法:
public ActionResult Delete(int id = 0)
{
.......................
.......................
.......................
DO SOME STUFF
.......................
.......................
.......................
return View(model);
}
我的疑问与此方法的签名有关:为什么参数 int id = 0 ?
= 0 是什么意思?首先,我认为这是一个简单的初始化,它将it值更改为0,但使用debbugger我发现它不会更改id值。那究竟是什么呢?
答案 0 :(得分:8)
它被称为可选参数。这意味着您可以不带参数调用该方法,如下所示:
Delete();
如果您这样做,函数中id
参数的值将为0
。
答案 1 :(得分:3)
您说= 0
设置id
参数的值是正确的。
但重要的是要注意,当你没有传递那个参数时它只会。
以例如:
public void SaySomething( var something = "Hello" )
{
Console.WriteLine( something );
}
//...
SaySomething();
SaySomething("I am sleeping.");
对函数的第一次调用不传递参数。因此,默认值"Hello"
用于写入控制台。
第二个调用已经为参数设置了一个值,因此它不会被您设置的默认值覆盖。在这种情况下将打印"I am sleeping."
。