C#使用params變長參數零實參問題

很長時間沒有使用過C#,裏面的一些小細節也忘得差不多了。最近有個小項目需要使用ASP.NET,這裏將遇到的問題或疑問記錄下來。
今天遇到的一個問題是 使用params變長參數時,如果不傳入實參,方法裏的參數是null?還是長度爲0? 憑直覺,我認爲參數爲空,爲了保險起見,同時添加了參數長度是否爲零的判斷。雖然這樣解決了問題,但心裏有些不舒服,因爲這樣的判斷不光添加了沒必要的代碼,在頻繁的函數調用同時要求速度的情況下還會影響性能。所以最後還是花幾分鐘時間弄明白這個問題。

測試代碼如下:

using System;
 
public class Test
{
	public static void Main()
	{
		string str;
		str="hi";
		Console.WriteLine(str);
		Print();
	}
	public static void Print(params string[] text)
	  {
	      Console.WriteLine(text.Length);
	      Console.WriteLine(text==null);
	  	foreach(string t in text)
		{
			Console.WriteLine(t);
		}
	  }
}

測試結果:
hi
0
False

結論很明顯:在使用變長參數params時,如果調用函數時沒有傳入實參,參數數組不爲空,長度爲0。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章