Вспоминаю с#. Веду протокол изменений, разностей и вообще того, что удивило и порадовало.
Разница с с++:
Это предопределённых порядок выполнения операндов слева направо. В с++ такого сейчас нет, компилятор может оптимизировать все очень странно(про порядок вычисления операндов, вроде это так).
Разница между && и &. & не сокращают вычисления, && сокращают. С++ компилятор может действовать как хочет. Страуструп пишет, что вычисления с++ всегда сокращенные. Сейчас в статьях встречала, что порядок вычисления условий в заголовке условного оператора не определён, те зависит от компилятора, в с# всегда слева направо).
В плане математики в с# все более строго. Неявные преобразования с потерей информации запрещены .
Ну, сборщик мусора. Лафа и халява.
Жёсткие различия между struct и class. К этому нужно будет привыкнуть.
Область видимости переменной - это целый блок программы, где она описана, а не только блок, начиная с места непосредственного объявления. Тоже кажется нелогичным, но это так.
В с# мажно сделать псевдонимы для имён библиотек .
Можно импортировать не только пространство имён, но лишь отдельный тип (видимо тоже удобно для разрешения конфликтов имён).
Что такое out в списке типов аргументов функции - пока не дошла, только встретила использование.
Метод сжатый до выражения- это вещь для таких лентяев как я. Писать => проще чем кучу всего обычного. ; в конце метода нужна.
С конструкторами с параметрами по умолчанию надо быть осторожнее. Т.к. при изменении количества параметров всё нужно перекомпилировать. Если нет такой возможности нужно иметь варианты для обратной совместимости.
Короткий инициализатор свойств - круто
Разный уровень доступа к свойствам.
Интересный вариант для совместной работы - это partial class. Особенно важно, что в каждой части могут быть объявлены свои интерфейсы для реализации и можно друг другу не мешать.
На сегодня все.
Разница с с++:
Это предопределённых порядок выполнения операндов слева направо. В с++ такого сейчас нет, компилятор может оптимизировать все очень странно(про порядок вычисления операндов, вроде это так).
Разница между && и &. & не сокращают вычисления, && сокращают. С++ компилятор может действовать как хочет. Страуструп пишет, что вычисления с++ всегда сокращенные. Сейчас в статьях встречала, что порядок вычисления условий в заголовке условного оператора не определён, те зависит от компилятора, в с# всегда слева направо).
В плане математики в с# все более строго. Неявные преобразования с потерей информации запрещены .
Ну, сборщик мусора. Лафа и халява.
Жёсткие различия между struct и class. К этому нужно будет привыкнуть.
Область видимости переменной - это целый блок программы, где она описана, а не только блок, начиная с места непосредственного объявления. Тоже кажется нелогичным, но это так.
В с# мажно сделать псевдонимы для имён библиотек .
Можно импортировать не только пространство имён, но лишь отдельный тип (видимо тоже удобно для разрешения конфликтов имён).
Что такое out в списке типов аргументов функции - пока не дошла, только встретила использование.
Метод сжатый до выражения- это вещь для таких лентяев как я. Писать => проще чем кучу всего обычного. ; в конце метода нужна.
С конструкторами с параметрами по умолчанию надо быть осторожнее. Т.к. при изменении количества параметров всё нужно перекомпилировать. Если нет такой возможности нужно иметь варианты для обратной совместимости.
Короткий инициализатор свойств - круто
Разный уровень доступа к свойствам.
Интересный вариант для совместной работы - это partial class. Особенно важно, что в каждой части могут быть объявлены свои интерфейсы для реализации и можно друг другу не мешать.
На сегодня все.