Max*_*ion 3 c# optional-parameters
我想实现以下场景:
方法:
public void Process(Request request, string statusCode=request.statusCode, string statusVal=request.statusVal)
{
...
}
Run Code Online (Sandbox Code Playgroud)
显然,上述构造在 C# 中不起作用。
因此,在这种情况下,方法 process 需要 3 个参数,其中调用参数可能会或可能不会在参数中传递 statusCode 和/或 statusVal。
当未传递值时,它应将请求对象中的值作为默认值。简而言之,可选参数的默认值可以是动态的,也可以基于另一个强制参数。
以下是您如何使用可选参数的方法:
public void Process(Request request, string statusCode = null, string statusVal= null)
{
statusCode = statusCode ?? request.statusCode;
statusVal = statusVal ?? request.statusVal;
...
}
Run Code Online (Sandbox Code Playgroud)
现在您可以通过以下任何一种方式调用它:
Process(request);Process(request, "code");Process(request, "code", "val");Process(request, statusCode: "code");Process(request, statusVal: "val");