Здравствуйте, vsb, Вы писали:
vsb>Всё красиво и понятно.
Некрасиво из-за большей писанины, да и Builder кто-то должен реализовать, что ещё добавляет веселья.
Ну, и код не эквивалентен. Там предполагается, что в конструкторе TimerRemaining коллекция buffer заполняется минимум 10 элементами.
Последние из них переписываются в инициализаторе на свои значения. Если в конструкторе 15 элементов заполняется, то первые 5 должны остаться не тронутыми.
В варианте с Builder же подаётся свой новый массив из 10 элементов и только они в итоге передадутся в объект или нужно реализовывать неочевидную логику в билдер, что ещё хуже сделает.
vsb>А в C# без ChatGPT не разберёшься.
Ну, C# пока ещё слабо замусорили непонятным сахаром, но успешно к этому идут.
Здравствуйте, Codealot, Вы писали:
C>Гениальная фича. Как я раньше мог жить без этого. C>Ну и код тоже доставляет. Бить мордой об клавиатуру за такой код.
Я бы понял, если бы эта фича автоматом добавилась, когда они "крышечки" добавили в индексаторы.
А вот зачем их отдельно приделали к инициализаторам — вопрос.
Вот так завязываться на логику конструкторов и переписывать снаружи отдельные элементы по индексу хоть с начала, хоть с конца — это как-то неправильно.
Не могу даже придумать где бы такое было нужно хотя бы как быстрое костыльное решение.
Здравствуйте, vsb, Вы писали:
vsb>Всё красиво и понятно. А в C# без ChatGPT не разберёшься.
Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?
ЗЫ. Млять, понаберут умников по объявлению...
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?
Один и тот же функционал фожно сделать по-разному. В Питоне индексация с конца — это отрицательные индексы, которые принимаются вполне интуитивно и выглядят логично. Почему знак '^'? Вот почему, как это можно объяснить, какой твой предыдущий опыт наталкивает на трактование этого символа, как индексацию с конца? Интуитивно такой знак может означать возведение в степень, может конъюнкцию. Разве язык программирования не надо делать логичным для людей?
Так что, да. По моему в Питоне сделано хорошо и уместно, а в C# нет.
Здравствуйте, BlackEric, Вы писали:
BE>Еще 12 числа вышел 9 .Net, а также С# 13 и F# 9. Так же продолжают развивать Blazor и MAUI.
BE>Много всего вкусного, в том числе для ИИ.
Мало чего на самом деле — Aspire и ИИ это мертворожденные темы, отомрут как хайп стихнет.
Нового больше ничего нет, хоть старое (Blazor, MAUI и asp.net, ef) развивают по чуть-чуть.
BE>F# кто-то вообще пользуется?
Маргиналы, особенно учитывая, что все нужные фичи уже C# втянул в себя (кроме возможно DU)
BE>А Basic, я так понимаю, всё?
Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime
BE>>А Basic, я так понимаю, всё? G>Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime
А как теперь обстоят дела с программированием в приложенях MS Office?
Помнится, лет 10 назад начинали приделывать вместо встроенного VBA разработку dll в студии на C#.
Пользуется ли оно популярностью?
Или кто сидел на VBA, так и продолжают?
Здравствуйте, Osaka, Вы писали:
BE>>>А Basic, я так понимаю, всё? G>>Да, по факту CLR это теперь не Common Language Runtime, а C# Language Runtime O>А как теперь обстоят дела с программированием в приложенях MS Office? O>Помнится, лет 10 назад начинали приделывать вместо встроенного VBA разработку dll в студии на C#. O>Пользуется ли оно популярностью? O>Или кто сидел на VBA, так и продолжают?
Там одно другого не исключает
1) VBA и макросы
2) нативные плагины (COM) (думаю возможно собрать на .net core, но с приседаниями)
3) VSTO (.net fw 4.5), по сути обертка над com
4) office js add-ins (работают даже в браузерных версиях)
Здравствуйте, IT, Вы писали:
IT>Тогда ты врядли и в любом другом языке разберёшься. Эта фича является неотъемлемой частью синтаксиса Indices and ranges и подобным образом используется в куче всяких других Питонах, Руби, D, Котлинах, F#, Перлах и т.д. По-твоему оно только в C# неуместно?
IT>ЗЫ. Млять, понаберут умников по объявлению...
Придумай пример, когда это реально нужно в инициализаторе объекта.
Ключевое слово field — в Nemerle было сделано менее коряво. Там просто можно было объявить поле внутри свойства:
public Foo
{
mutable _foo = 123;
get _foo;
set _foo = value;
}
В C# же просто решили ввести ключевое слово field, которое волшебным образом создает одноименное скрытое поле, если field упомянуть внутри эксесеров свойства.
params-коллекции.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Nuzhny, Вы писали:
N>Так что, да. По моему в Питоне сделано хорошо и уместно, а в C# нет.
А по мне в Питоне не логично. -1 выглядит как обращение к минус первому индексу в массиве, а не к минус первому с конца. А в C# как раз нормально. ^1 — первый элемент с конца.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Codealot, Вы писали:
C>Я о фиче и сэмпле кода.
В сообщении, на которое я отвечал не было инициализаторов. Но было про красоту и понятность buffer[len — 1] и что с таким можно разобраться и без ChatGPT.
Если нам не помогут, то мы тоже никого не пощадим.