如何在调用时告诉方法使用特定常量?

时间:2018-05-09 15:32:02

标签: c# function variables

我正在尝试构建一个Log函数。 我的类看起来有点像(pseudoCode):

const string Trigger1 = "Warning";
const string Trigger2 = "Info";

public void log (string Trigger) 
{
    WriteLog(message = Trigger);
}

我想调用方法日志并告诉它应该在日志中写入哪个触发器常量。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您应该使用日志库,但如果您只是在尝试并希望自己实现它,请使用Enums。

public enum LogLevel {
    Warning,
    Info
}

Log(LogLevel.Info);

public void Log(LogLevel level) {
...
}

答案 1 :(得分:1)

您可以执行大多数日志库的操作并在API中明确显示:

public class Logger
{
    private const string Warn = "Warn";
    private const string Info = "Info";

    public LogInfo(string message)
    {
        Log(Info, message);
    }

    public LogWarn(string message)
    {
         Log(Warn, message);
    }

    private Log(string trigger, string message)
    {
        // do something
    }
}

作为另一种选择,您可以选择在上面公开private Log方法作为公共API的一部分。在这种情况下,我会将LogLevel提取为枚举,并将其用作触发器参数,而不是使用string