繁体   English   中英

我可以在C#中使用默认参数吗?

[英]Can I have defaults for parameters in C#?

我有以下功能:

public ActionResult Index(string caller_id, int? id)
{

现在,我使用以下代码设置值:

var _id = id.HasValue ? (int) id : 0;

在不设置id的情况下调用函数时,是否可以将id的值默认设置为某些值?

谢谢,

艾莉森

是的,您可以这样做,但前提是您使用.net 4.0+

public ActionResult Index(string caller_id, int id = 0)

命名和可选参数(@msdn)

如果使用的是C#4.0或更高版本,则可以为调用者未指定的参数指定默认值。

public ActionResult Index(string caller_id, int id = 0)
{
    // ...
}

请注意,此代码不像您的代码那样使用可为空的类型。 除非没有默认值永远不会显示为有效值,否则没有必要。

做到这一点的“老派”方法将有很多负担。

public ActionResult Index(string caller_id)
{
   return Index(caller_id, 0);
}

public ActionResult Index(string caller_id, int id)
{
   ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM