![](/img/trans.png)
[英]i'm used to have the IDE to create the event signature for me under vb.net, how to do it with c#?
[英]Why in this C# .NET controller method do I have this signature?
我对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,但是使用调试器后,我发现它不会更改id值。 那到底是怎么做的呢?
它称为可选参数。 这意味着您可以不带参数地调用方法,如下所示:
Delete();
如果这样做,函数中id
参数的值将为0
。
您说对了= 0
设置id
参数的值。
但是要注意,只有在不传递该参数的情况下才这样做 ,这一点很重要。
举个例子:
public void SaySomething( var something = "Hello" )
{
Console.WriteLine( something );
}
//...
SaySomething();
SaySomething("I am sleeping.");
对该函数的第一次调用未传递参数。 因此,默认值"Hello"
用于写入控制台。
第二个调用已经为参数设置了一个值,因此不会被您设置的默认值覆盖。 "I am sleeping."
在这种情况下将被打印。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.