Страница 1 из 2

Какая версия C# используется в АД?

Добавлено: 21 мар 2019, 17:37
BugsDigger
Привет всем.
Собственно, subj: какая версия C# используется в АД?
Просто языковые фичи С#7 не работают...
И (<с наивным видом>), почему не использовать последнюю версию C#?

Re: Какая версия C# используется в АД?

Добавлено: 24 мар 2019, 12:17
ensh
В терминале используется net.4.0. В стратегиях используется встроенный в net компилятор скриптов, соответственно, тоже net 4.0.
Впрочем, использование 4.5 тоже не сильно продвинет ситуацию.
Насколько фишки C#5 и C#7 встроены в компилятор net и не используют поддержку Visual Studio нужно гуглить.

Re: Какая версия C# используется в АД?

Добавлено: 24 мар 2019, 12:31
BugsDigger
Привет, ensh, спасибо за информацию.
А почему, собственно, не используют последнюю версию?.. Казалось бы, д.б. совместимо, перекомпилять делов-то...

Re: Какая версия C# используется в АД?

Добавлено: 24 мар 2019, 13:09
ensh
Для обратной совместимости, типа есть пользователи у которых старая винда и старый фреймворк.

Поднять фрейморк - новая волна гнева, про убогий терминал, уволить всех тестировщиков и программистов - посмели поднять версию фреймворка, попробуй скачай и разберись какая нужна :lol:

Открою тссссс... секрет, версия виртуальной машины clr net c 2012 года не изменилась - вся та же 4-я, так что все эти фреймворки для программистов, а не для пользователей. Пользователи получают опосредованную выгоду - где-то стандартный алгоритм оптимизировали, где-то более корректно старую фичу реализовали, прикрутили новую, чтобы программистам меньше писать, и тд и тп... новые баги, старые косяки...

С точки зрения нового синтаксиса... пользовательский скрипт встраивается в жестко заданный класс с двумя методами в ограниченном неймспейсе, кроме фичи out var ничего внутри функции из нового синтаксиса и не заюзаешь. Мое мнение - новый скрипт не поможет никак, там и старого хватает с избытком, раньше люди на Фортране и Бейсике такое писали... а скрипт в стратегиях помощнее Фортрана будет.

Re: Какая версия C# используется в АД?

Добавлено: 24 мар 2019, 14:30
BugsDigger
Я прото наткнулся, что tuple нельзя "из коробки" сделать ключом в dictionary (хэша нету у него и сличения на равенство, как в последних версиях) и именованных элементов в tuple тоже нету ...
Абыдна, однако.
Переживу, конечно.

Re: Какая версия C# используется в АД?

Добавлено: 24 мар 2019, 15:40
ensh
давно уже пора писать свои сборки с классами и подключать к скриптам стратегий

Re: Какая версия C# используется в АД?

Добавлено: 24 мар 2019, 17:27
BugsDigger
ensh писал:

> писать свои сборки с классами и подключать

Пока не дошел до этого. Видимо, надеюсь обойтись доступными встроенными средствами...

А, кстати, как? Так же, как "инжекция" AD-сборок? (Кстати, а почему не все они доступны сразу?)
Я просто не очень представляю нетовскую механику. Можно ли подключить любую сборку и использовать ее, даже ту, что не использовалась при компиляции головного AD.exe? (Скорее всего ответ - да :))

Re: Какая версия C# используется в АД?

Добавлено: 25 мар 2019, 12:13
ensh
Сборку можно загрузить сразу - без проблем, а вот ее использование нужно прописывать в секции using или писать в коде и компилятор скрипта на это будет ругаться. Поэтому нужен небольшой финт в секции инициализации.
Можно грузить сборку и рефлекшеном доставать из нее классы, как тоже предлагалось.
По вашему кейсу, можно ограниченную порцию данных (два три поля) превратить в строку ииспользоват ее в качестве уникального ключа, если без сборок.

Re: Какая версия C# используется в АД?

Добавлено: 25 мар 2019, 18:53
BugsDigger
> рефлекшеном доставать

ОК, понятно, спасибо за пояснение.

> строку использовать в качестве уникального ключа

Да, так и делаю.

Re: Какая версия C# используется в АД?

Добавлено: 26 мар 2019, 05:10
AP_Bor
Доброго времени суток
BugsDigger » 24.03.2019, 17:27 писал(а):А, кстати, как?
Пока был занят, что-то пропустил.
Не пойму, что и куда подключаем, думал с этим вопросов уже нет.
Можно подробней, с примером.
► Показать
С наилучшими пожеланиями