如何使用动态参数调用方法(可以通过或不通过)C#

时间:2014-11-07 02:04:48

标签: c# asp.net parameters

我有这样的功能:

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)

2 个答案:

答案 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
}