|   | 
| 
 .NET TIPS 
メソッドに可変長パラメータを渡すには?
デジタルアドバンテージ 
2004/07/09 | 
  | 
 
 | 
  ある文字列を指定した文字で分割するには、Stringクラス(System名前空間)のSplitメソッドが使用できるが、このメソッドを呼び出す場面で次のような記述を見かけることがある。
Dim words As String = _ 
    "this is a list of words, with: a bit of punctuation." 
Dim split As String() = _ 
    words.Split(New Char() {" ", ",", ".", ":"}) | 
 
 
 | 
 
| VB.NETによるSplitメソッドの呼び出し例 | 
 
string words =  
    "this is a list of words, with: a bit of punctuation."; 
string [] split = words.Split(new Char [] {' ', ',', '.', ':'}); | 
 
 
 | 
 
| C#によるSplitメソッドの呼び出し例 | 
 これらの呼び出しでは、文字(Char型の値)の配列を作成し、それをパラメータとしてSplitメソッドに渡している(これにより、「this is a list of words, with: a bit of punctuation.」という文字列を「 」(半角空白)や「,」、「.」、「:」という指定文字列で分割している。)。
 しかし、Splitメソッドは可変長のパラメータを取ることができるメソッドである。リファレンス・マニュアルを参照すると、このメソッドのシグネチャは次のようになっている。
[Visual Basic] Overloads Public Function Split(ParamArray Char()) As String()
[C#] public string[] Split(params char[]);
 ParamArray(VB.NET)あるいはparams(C#)が可変長パラメータを示すキーワードである。メソッドのこのようなパラメータに対しては、わざわざパラメータを配列にしなくても、単にパラメータを列挙してメソッドを呼び出すだけでよい。つまり、冒頭の例のSplitメソッド呼び出しは次のようにシンプルに書き換えることができる。
 
Dim split As String() = words.Split(" ", ",", ".", ":") | 
 
 
string [] split = words.Split(' ', ',', '.', ':'); | 
 実際には、可変長パラメータを取るメソッドの呼び出しは、コンパイラにより配列を使用した呼び出し(冒頭で示した呼び出し方法)に置き換えられる。
カテゴリ:Visual Basic .NET 処理対象:データ型 
カテゴリ:C# 処理対象:データ型
 
使用ライブラリ:Stringクラス(System名前空間) | 
 
 
|  
 | 
 
generated by  
 | 
 
 
 | 
 
 
	
		Insider.NET 記事ランキング
		
		
			本日
			月間