Size: a a a

2020 February 26

IC

Iλyα Che in pro.net
А как в атрибуте поля указать метод? Тот же nameof получается, который ещё и не в том месте)
источник

VS

Viktor Svyatokha in pro.net
Iλyα Che
А как в атрибуте поля указать метод? Тот же nameof получается, который ещё и не в том месте)
чо? ты вопрос-то свой перечитай
источник

IC

Iλyα Che in pro.net
Viktor Svyatokha
чо? ты вопрос-то свой перечитай
Перечитал. Я вешаю атрибут на поле, как ты и предлагаешь. Как мне указать метод в этом атрибуте?
источник

IC

Iλyα Che in pro.net
Вот из первого же примера с field и Init().
источник

VS

Viktor Svyatokha in pro.net
я как это вижу из того же примера: пацаны не научили нулабилити анализатор выуживать какие поля инициализирует метод  и предлагает костыли с nameof
источник

IC

Iλyα Che in pro.net
Мне кажется, это какой-то офигенно сложный и медленный аналмзатор будет. Потому что другой метод может делать это же поле null. И  вся эта хрень может дёргаться по всему проекту на разных уровнях.
источник

Dv

Dr. Friedrich von Never in pro.net
Viktor Svyatokha
я как это вижу из того же примера: пацаны не научили нулабилити анализатор выуживать какие поля инициализирует метод  и предлагает костыли с nameof
Это контракт метода. Например, он может быть в ref asm, когда у тебя тело метода вообще недоступно.
источник

Dv

Dr. Friedrich von Never in pro.net
Или ты хочешь, чтобы компилятор просто сам это всё учитывал и навешивал атрибуты на этапе, когда он таки знает тело метода?
источник

VS

Viktor Svyatokha in pro.net
Dr. Friedrich von Never
Или ты хочешь, чтобы компилятор просто сам это всё учитывал и навешивал атрибуты на этапе, когда он таки знает тело метода?
проблема такого дизайна в том, что у тебя получается еще одно метапрограммирование, к сожалению
источник

Dv

Dr. Friedrich von Never in pro.net
Viktor Svyatokha
проблема такого дизайна в том, что у тебя получается еще одно метапрограммирование, к сожалению
Да, получается.
источник

VS

Viktor Svyatokha in pro.net
ты пишешь метод, а контракт описываешь отдельно другими средствами языка
источник

Dv

Dr. Friedrich von Never in pro.net
Я не уверен, что это плохо.
источник

Dv

Dr. Friedrich von Never in pro.net
Ну, для пользователя такого API это точно хорошо.
источник

Dv

Dr. Friedrich von Never in pro.net
Да, ему было бы хорошо и если бы компилятор сам это всё угадывал :)
источник

Dv

Dr. Friedrich von Never in pro.net
Однако, вот такие вот странные контракты для не вполне связанных частей системы ему может быть угадать сложно. У меня нет решения этой проблемы.
источник

VS

Viktor Svyatokha in pro.net
Dr. Friedrich von Never
Однако, вот такие вот странные контракты для не вполне связанных частей системы ему может быть угадать сложно. У меня нет решения этой проблемы.
Ну вообще ms contracts (кажется так это называлось) был неплохим решением кмк
источник

Dv

Dr. Friedrich von Never in pro.net
Viktor Svyatokha
Ну вообще ms contracts (кажется так это называлось) был неплохим решением кмк
Contract annotations ты имеешь в виду, и они были так себе.
источник

Dv

Dr. Friedrich von Never in pro.net
Рантайм-проверки, неудобный и непортабельный тулинг.
источник

VS

Viktor Svyatokha in pro.net
Dr. Friedrich von Never
Рантайм-проверки, неудобный и непортабельный тулинг.
Я имел ввиду концепцию, что контракты ты мог описать отдельно со своим дсл, где есть тайпчекинг и все дела
источник

Dv

Dr. Friedrich von Never in pro.net
Основная проблема в том, что они были изобретены в донеткорную эпоху. Делали бы сегодня — наверняка смогли бы сделать нормально, и интегрировали бы в рослин.
источник