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