您可以在使用可選參數調用方法時使用命名參數。
public void MyMethod(string s = null, int i = 0, MyType t = null)
{
/* body */
}
調用它像這樣:
MyMethod(i: 10, t: new MyType());
MyMethod("abc");
MyMethod("abc", t: new MyType());
另外,您可以使用重載:
public void MyMethod(string s)
{
MyMethod(s, 0, null);
}
public void MyMethod(int i)
{
MyMethod(null, i, null);
}
public void MyMethod(MyType t)
{
MyMethod(null, 0, t);
}
public void MyMethod(string s = null, int i = 0, MyType t = null)
{
/* body */
}
另一種選擇是使用一個參數類,像這樣:
public class MyParametersClass
{
public string s { get; set; }
public int i { get; set; }
public MyType t { get;set; }
public MyParametersClass()
{
// set defaults
s = null;
i = 0;
MyType = null;
}
}
public void MyMethod(MyParametersClass c)
{
/* body */
}
這樣調用:
MyMethod(new MyParametersClass
{
i = 25,
t = new MyType()
});
使用參數類可能是您的首選方法。參數類可以在您處理任何處理時隨身攜帶。 :)對它所做的任何更改都不會丟失...
var parameters = new MyParametersClass();
MyMethod(parameters);
parameters.i = 26;
MyMethod(parameters);
我不明白這個問題;只需在函數調用中放置所有的值併爲內存地址提供一個變量即可。 – KevinDTimm
你可以將它們作爲參數移除或使用默認參數嗎? –
請注意,ProcessHandle對於每次調用都會有所不同(您不認爲它只會從一個程序中調用,是嗎?)。 – KevinDTimm