Перегруженные строковые методы с интерполяцией строк

Почему интерполяция строк предпочитает перегружать методstring вместоIFormattable?

Представьте себе следующее:

static class Log {
    static void Debug(string message);
    static void Debug(IFormattable message);
    static bool IsDebugEnabled { get; }
}

У меня есть объекты с очень дорогимиToString(), Ранее я делал следующее:

if (Log.IsDebugEnabled) Log.Debug(string.Format("Message {0}", expensiveObject));

Теперь я хотел иметь логику IsDebugEnabled внутриDebug(IFormattable)и вызывать ToString () для объектов в сообщении только при необходимости.

Log.Debug($"Message {expensiveObject}");

Это, однако, называетDebug(string) перегрузки.

Ответы на вопрос(3)

Ваш ответ на вопрос