我有这样的功能:
public void MyMethod(string param1=null, int? param2=null, Datetime? param3=null)
{
//do something
}
所以我打电话的时候:
MyMethod(param1,null,null) or MyMethod(null,param2,null) ...
但我不喜欢上面的方式,我可以称之为:
MyMethod(param1) or MyMethod(param2) or MyMethod(param3)
答案 0 :(得分:1)
你可以通过重载来实现这一点 - 即有多个名为MyMethod的方法。他们需要有不同的签名,这意味着不同类型的参数。
所以你有:
public void MyMethod(string param1)
{
MyMethod(param1, null, null);
}
public void MyMethod(int param2)
{
MyMethod(null, param2, null)
}
您还需要原始方法 - 其他方法可以调用。
答案 1 :(得分:1)
你可以这样做,相同类型的参数在重载时会出现问题,但我确实喜欢重载而不是这种方法
这样称呼:
public void Main(string[] args)
{
MyMethod(param2: value);
MyMethod(param1: value);
MyMethod(param3: value);
}
public void MyMethod(string param1=null, int? param2=null, Datetime? param3=null)
{
//do something
}