Мне интересно, почему эта строка кода не компилируется:
ILogStuff Logger = (_logMode) ? new LogToDisc() : new LogToConsole();
Обратите внимание, что оба класса LogToDisc
и LogToConsole
реализуют ILogStuff
, а _logMode
- булева переменная. Сообщение об ошибке, которое я получаю:
Ошибка 3: Тип условного выражения не может быть определен, потому что нет никакого неявного преобразования между 'xxx.LogToDisc' и 'xxx.LogToConsole'
Но почему это должно быть? Что мне не хватает?