[英]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.