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

时间:2011-04-13 03:59:30

标签: c#

我有以下功能:

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

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

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

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

谢谢,

艾利森

3 个答案:

答案 0 :(得分:6)

是的,你可以这样做但只有你使用.net 4.0 +

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

Named and Optional Arguments (@msdn)

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:3)

“老派”这样做的方法就是过载。

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

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