Я работаю с некоторым кодом, имеющим семь перегрузок функции TraceWrite
:
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, string Data = "");
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, bool LogToFileOnly, string Data = "");
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, string PieceID, string Data = "");
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, LogWindowCommandENUM LogWindowCommand, string Data = "");
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, bool UserMessage, int UserMessagePercent, string Data = "");
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, string PieceID, LogWindowCommandENUM LogWindowCommand, string Data = "");
void TraceWrite(string Application, LogLevelENUM LogLevel, string Message, LogWindowCommandENUM LogWindowCommand, bool UserMessage, int UserMessagePercent, string Data = "");
(Все общедоступные статические шумы в пространстве имен исключены выше и повсюду).* Итак, на этом фоне:
1) В другом месте я вызываю TraceWrite
с четырьмя аргументами: string, LogLevelENUM, string, bool
, и я получаю следующие ошибки:
error CS1502: The best overloaded method match for 'TraceWrite(string, LogLevelENUM, string, string)' has some invalid arguments
error CS1503: Argument '4': cannot convert from 'bool' to 'string'
Почему этот вызов не разрешаетсяко второй перегрузке?(TraceWrite(string, LogLevelENUM, string, bool, string = "")
)
2) Если бы я позвонил TraceWrite
с string, LogLevelENUM, string, string
, какая перегрузка была бы вызвана?Первый или третий?И почему?