我可以在c#中设置默认参数吗?
本文关键字:参数 默认 设置 我可以 | 更新日期: 2023-09-27 17:49:47
我有以下功能:
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)
{
...
}