2016-12-12 10 views
-2

は、私は私がCalcBreakpoint(200として、それを呼び出したいいくつかのパラメータまたは1つまたは例えば、何かのためになしメソッドのパラメータとして複数の値を渡すにはどうすればよいですか?

public void CalcBreakpoint(int tolerance, [I want to send several parameters or one or none]) 
{ 
//my code 
} 

を送信する方法を持っている、「文字列値1」、「文字列値2」、「文字列値3" )

及び他の機会に、私は、コードの90%が同一であるので、私は過負荷を回避したい CalcBreakpoint(500、物体1、オブジェクト2)

としてそれを呼び出すことになります。

メソッドのパラメータとして複数の値を渡すにはどうすればよいですか?このよう

ます。public void CalcBreakpoint(int型の許容範囲、[ONE_PARAMETER])

+5

「のparams」キーワード –

+0

おかげ@MatthewStrawbridgeを見上げて –

答えて

4

として、彼らはいつもあなたが行うことができます文字列になる場合:彼らはあなたが使用するパラメータを設定している場合

public void void CalcBreakpoint(int tolerance, params string[] args) 
{ 
    //my code 
} 

public void params void CalcBreakpoint(int tolerance, string arg1 = null, int? arg2 = null, object arg3 = null, decimal? arg4 = null) 
{ 
    //my code 
} 

2番目の方法は、次のように呼び出すことができるという利点があります。

maksymiukの優れた提案に加え
0

、私はあなたにも、次のいずれかを実行できることを指摘したいと思います:

// If you're using "mixed types" 
public void CalcBreakpoint(int tolerance, params object[] args) 
{ 
    //... 
} 

// The use of dynamic here is controversial but it can accomplish something similar to the above code sample 
public void void CalcBreakpoint(int tolerance, params dynamic[] args) 
{ 
    //.... 
} 

// If all of the arguments are of the same type but you don't know "in advance" 
// what that type will be, you can use generics here 
public void CalcBreakpoint<T>(int tolerance, params T[] args) 
{ 
    //my code 
} 
関連する問題