use*_*414 3 c# optional-parameters
我想知道参数 b 是否由调用方法提供,以便我可以根据它在方法的定义中对其进行调节。因为这里总是有一个默认值“b”0,但我想区分用户调用 cc(5,0) 和 cc(5)。
有什么办法可以知道吗?
class Program
{
static void Main(string[] args)
{
var c= cc(5);
}
public static int cc(int a, [Optional] int b)
{
int c=0;
//if(b is provided)
c = a * b;
//else()
c =a*a;
return c;
}
}
Run Code Online (Sandbox Code Playgroud)
你不能通过该机制。即使您使用了int? b = null,调用者也可能已明确指定null。要知道,您必须使用重载而不是可选参数,例如:
public static int cc(int a) => cc(a, 0, false);
public static int cc(int a, int b) => cc(a, b, true);
private static int cc(int a, int b, bool bSpecified) // could also use int? here
{...}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |