我有以下功能:
public ActionResult Index(string caller_id, int? id)
{
现在我使用以下代码设置值:
var _id = id.HasValue ? (int) id : 0;
在没有设置id的情况下调用函数时,我是否可以将id的值默认为某个值?
谢谢,
艾利森
答案 0 :(得分:6)
是的,你可以这样做但只有你使用.net 4.0 +
public ActionResult Index(string caller_id, int id = 0)
答案 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)
{
...
}