Нужно присвоить переменной res какое-то значение до начала цикла внутри функции.
Так она у тебя не определена.
Если тебе так не подходит, то нужно использовать не out, а ref.
Если состояние переменной до её использование в функции важно - используем ref, если нам безразлично - out, но тогда эта переменная должна быть определена по всем возможным веткам.
Не надо описывать, просто присвой значение
Просто
res = 1;. Дело не в её существовании, а в том, что у неё нет значения. Если у тебя стоит out, то подразумевается, что значение этой переменной сотрётся и использоваться не будет. Поэтому нужно задать определённое значение таким образом, чтобы при любом событии по завершении работы функции в переменной out было какое-то определённое значение
Я не стал ждать 3 дня, как мы говорили, но как-то это не сильно помогло…
Мне не очевидно почему мой Принт работает, а из паскаля нет: как может не быть того объекта, который я только что выводил.
Не говоря уже про Рандом и использование принта из паскаля как метода расширения…
Метод расширения Print определен в паскалевском пространстве имён
PABCSystem_implementation______
В модуле PABCSystem есть раздел инициализации. Он инициализирует датчик случайных чисел в частности. Чтобы его запустить, в программе на C# надо вызвать __InitModule();
Забавно то, что в ходе экспериментов Rider самостоятельно подтянул PABCSystem_implementation______, а студия упорно продолжала жаловаться на проблемы с кодировкой.
С инициализацией модуля ещё понятно, что механизм такой.
А вот с подключением PABCSystem_implementation______ совсем непонятно: почему Print не работает, он же тоже указан в PABCSystem? Почему нужен дополнительно PABCSystem_implementation______?
По какому принципу методы распределены по PABCSystem_implementation______ и PABCSystem ? Некоторые, как Print, повторяются…
Ну и зачем такое кол-во нижних подчёркиваний?
P.S. Движок форму почему-то считает себя умнее и убирает мои сделанные намеренно переходы на новую строку, если после них не стоит пустая строка…
Никто не планировал подключать dll к C#. Теперь надо будет подумать, как это улучшить.
Print - это метод расширения, который указан в секции реализации PABCSystem - в секции интерфейса его нет. Те, которые указаны в разделе интерфейса - там даны только заголовки, а реализация - в разделе реализации.
В процессе выполнения лабораторных выяснилось, что для нормального использования кортежей, которые мы с вами так любим, необходим .NET Framework 4.7+, в то время как в дисплейных классах последняя версия - 4.6.1 (говорят, в некоторых даже 4.5), как-то неприятно…
Станислав Станиславович, у вас есть какая-то возможность повлиять на скорость обновления VS в дисп. классах?