Как указать методу использовать определенную константу при вызове? - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь создать функцию журнала. Мой класс выглядит примерно так (псевдокод):

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

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

Я хочу вызвать журнал методов и сообщить ему, какую константу триггера следует записать в журнал.

Каков наилучший способ достичь этого?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы можете делать то, что делает большинство библиотек журналов, и явно указывать в своем 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

0 голосов
/ 09 мая 2018

Вы должны использовать библиотеку журналов, но если вы только экспериментируете и хотите реализовать это самостоятельно, используйте Enums.

public enum LogLevel {
    Warning,
    Info
}

Log(LogLevel.Info);

public void Log(LogLevel level) {
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...