今天接了個給項目寫Log日志管理類的活。具體功能是将項目中用到的log日志列印地方都統一調用管理類的接口,進而可以統一通過開關控制log列印。做的時候需要拼接多個字元參數組成字元串,字元參數個數不确定,可能有0到n個,如果不同字元數量都寫一個參數重載就不大合理,網上查了C#有params這個參數,可以實作傳不同參數個數的功能。下面是代碼示範。
using System;
using System.Text;
class Program
{
static void Log(params string[] str)
{
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0; i < str.Length; i++)
{
stringBuilder.Append(str[i]);
}
Console.WriteLine(stringBuilder);
}
static void Main(string[] args)
{
Log("騎","馬","與","砍","殺","2020","年","發","售");
Console.ReadLine();
}
}
進階:params本質是将參數作為一個object[],是以每次都會建立一個數組生成引用類型,造成更多GC,是以當不需要傳入參數時候最好顯示傳入null,不然也會建立空的object[]數組。或者定義傳空或者1到3個左右參數的函數重載。