繁体   English   中英

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

[英]How to call a method with dynamic parameters (can pass or without) C#

我有这样的功能:

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)

您可以通过重载来完成此操作-即具有多个称为MyMethod的方法。 但是它们将需要具有不同的签名,这意味着不同类型的参数。

因此,您将拥有:

public void MyMethod(string param1)
{
     MyMethod(param1, null, null);
}

public void MyMethod(int param2)
{
     MyMethod(null, param2, null)
}

您还将需要您的原始方法-其他方法会调用该方法。

您可以这样操作,相同类型的参数在重载中将是一个问题,但我确实赞成重载而不是这种方法

这样称呼它:

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM