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

C# 如何告诉方法在调用时使用特定常量?,c#,function,variables,C#,Function,Variables,我正在尝试构建一个日志函数。 我的类看起来有点像这样(伪代码): 我想调用方法日志并告诉它应该在日志中写入哪个触发器常量 实现这一点的最佳方法是什么?您应该使用日志库,但如果您只是在试验,并且希望自己实现它,请使用枚举 public enum LogLevel { Warning, Info } Log(LogLevel.Info); public void Log(LogLevel level) { ... } 您可以执行大多数日志库的操作,并在API中显式显示: pub

我正在尝试构建一个日志函数。 我的类看起来有点像这样(伪代码):

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


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

您应该使用日志库,但如果您只是在试验,并且希望自己实现它,请使用枚举

public enum LogLevel {
    Warning,
    Info
}

Log(LogLevel.Info);

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

您可以执行大多数日志库的操作,并在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
    }
}

作为另一个选项,您可以选择公开上面的
私有日志
方法作为公共API的一部分。在这种情况下,我将把LogLevel提取为枚举,并将其用作触发器参数,而不是使用
字符串

您如何决定使用哪条消息?代码中不清楚。请使用log4net之类的日志库。详细信息是自动提供的(作为输出和日志级别),比常量字符串有用得多。
log(Trigger1)
日志(触发器2)创建两个变量:public void
LogWarning(string Trigger)
LogError(string Trigger)
,并使用适当的常量也是一个很好的日志记录实用程序。您可以使用许多“接收器”(控制台、滚动文件、电子邮件等),您还可以调用level参数上的ToString来获取字符串值。(“警告”和“信息”)
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
    }
}