close
相信大家在撰寫腳本的時候,一定有遇過某個 方法(Methods) 需要接收大量或者數量不確定的 方法參數(Method Parameters) 時,這個時候你除了使用 成員多載(Member Overloading) 之外,其實你還可以使用關鍵字 params 來接收數量不固定的 方法參數(Method Parameters)!
 
 
關鍵字 params 的用法如下
 
// 可以直接給多個 string 方法參數, 
// 執行結果印出 "Params 使用示範!!!"
TestParams( "Params", " ", "使", "用", "示", "範", "!!!" );

// 也可以直接給一個一維陣列, 
// 執行結果印出 "Params 使用示範!!!"
string[] ary = new string[]{ "Params", " ", "使", "用", "示", "範", "!!!" };
TestParams( ary );

// 就算不給參數, 也是可以的, 
// 執行結果為空字串, 因為陣列長度為 0, 所以系統會印出我的預設空字串
TestParams();


// 方法名稱( params 類型一維陣列 參數名稱 )
private void TestParams( params string[] ary )
{
	string s = string.Empty;

	for ( int i = 0; i < ary.Length; i++ )
		s += ary[i];
	
	Debug.Log( s );
}
 
 
 
注意!以下是錯誤的!
 
// 這是錯誤的, 傳遞的方法參數類型跟接收的參數類型不同! 
TestParams( "ABC", 123 );

// 以下才是正確的
TestParams( "ABC", "123" );


// 這是錯誤的, 一維陣列後不能再給其他方法參數! 
string[] ary = new string[]{ "測", "試" };
TestParams( ary, "ABC" );

// 以下才是正確的
string[] ary = new string[]{ "測", "試", "ABC" };
TestParams( ary );


// 這是錯誤的, 關鍵字 params 之後不能有別的方法參數! 
private void TestParams( params string[] ary, int i )
{
}

// 以下才是正確的
private void TestParams( int i, params string[] ary )
{
}


// 這是錯誤的, 一個方法宣告中只能有一個關鍵字 params! 
private void TestParams( params string[] ary, params string[] ary2 )
{
}

// 以下才是正確的
private void TestParams( params string[] ary )
{
}
 

 

arrow
arrow

    岳 發表在 痞客邦 留言(0) 人氣()