我可以在c#中设置默认参数吗?

本文关键字:参数 默认 设置 我可以 | 更新日期: 2023-09-27 17:49:47

我有以下功能:

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

现在我使用下面的代码来设置一个值:

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

是否有可能让我的id默认值的东西,当函数被调用而没有id被设置?

谢谢,艾利森

我可以在c#中设置默认参数吗?

是的,你可以这样做,但只有当你使用。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)
{
   ...
}