在C#中进行通用日志记录的最简单方法

时间:2011-03-11 11:06:00

标签: c#

我是C#的新手,但仍然是

public class Logging
{ 
    public static int Write(params object[] items)
    {
        return Console.Write(items);
    }
}

似乎还可以,但不起作用。 好吧,所有实例或Write都是在编译时定义的并不明显,但它们是。

如果我打电话

Logging.Write("Hello world");

我有字符串

System.Object[]

作为回应

2 个答案:

答案 0 :(得分:4)

您的代码存在两个问题:

  1. 没有Console.Write method的重载没有返回void(例如int)。

  2. Console.Write method没有超载object数组。过载匹配是一个object,它通过调用ToString methodobject转换为stringToString method会为"System.Object[]"数组返回object


  3. 你想做这样的事吗?

    public class Logging
    { 
        public static void Write(params object[] items)
        {
            Console.WriteLine(string.Join(" ", items));
        }
    }
    

    示例:

    int x = 42;
    Logging.Write("The value of x is", x);
    

    输出:

    The value of x is 42
    

答案 1 :(得分:0)

我知道这不是你的问题所在,但我建议使用一个日志库,我喜欢NLog,然后有Log4Net还有更多,但那些是我所知道的!