接受函数中非固定长度的参数组

时间:2013-05-13 16:16:30

标签: c# methods

所以我要做的就是建立一个日志功能,我希望能够采用这种格式

public static void AddToLog(Guid someID, LogArea myLogger, string message, object object1, object object2... ... ...);

倒数第二个参数我想接受一个字符串,其格式类似于string.format,最后的X参数将是用字符串格式替换的对象。

我很难过,因为我不记得调用编程概念来搜索C#中的示例。我也意识到那里有很棒的日志包 - 我只需要做一些特别的事情,这就是我重新发明轮子的原因:D

有没有人建议如何告诉C#不要期望固定长度的参数? (对于奖励积分,如果有人知道如何以///符号最好地记录这一点,我真的很感激它)。

3 个答案:

答案 0 :(得分:3)

您正在寻找params[]

public static void AddToLog(Guid someID, LogArea myLogger, string message, params object[] list)
{
    // you can use it like an array
    Console.WriteLine("Guid:{0} Message:{1} Objects:{2}"
        , someID, message, string.Join(",", list));
}

答案 1 :(得分:2)

使用params

public static void AddToLog(
    Guid someID, LogArea myLogger, string message, params object[] parameters)
{
    foreach(object p in parameters)
    {
        Console.WriteLine(p);
    }
}

答案 2 :(得分:1)

我相信您要查找的关键字是params

public static void AddToLog(Guid someID, LogArea myLogger, string message, params object[] objects)