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