Re[19]: Базовое отличие ООП от ФП
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.04.24 15:05
Оценка:
Здравствуйте, Pauel, Вы писали:

P>>>Именно это и есть в моем примере

S>>Нет это конструкторы. Ты явно не использовал XAML

P>Подозреваю, я xaml попробовал задолго до того, как вы про него узнали Не впечатлил — громоздко, многословно, тормозно

Там есть конвертеры, тригеры итд.
Я шарпом занимаюсь с 2002 года. И сначала XAML у меня вызвал отвращение.
Да я и не особо дизайнер.

P>Сам по себе XAML не летает — это просто фронтенд для описания структуры.

P>А далее готовая структура подаётся в бакенд, который её интерпретирует.

Ну вообще то он компилируется Компиляция XAML

P>Декларативные свойства обеспечивают не xaml, а тот самый бакенд.

P>Собственно, вместо XAML вы можете использовать что угодно, абы структура на выходе была такая же.
P>Вы можете и сейчас это сделать разными путями
P>1. создавать структуру на основе более внятного ДСЛ, нежели xaml, транслируюя в xaml
P>2. императивно
P>3. на основе инциализаторов, которые кривые, что вы и продемонстрировали

P>То есть, буде в наличии внятные инциализаторы, нет необходимости городить огород из XAML

Я так же программно иногда делаю.
Но это от лени. Я не так часто его использую.

S>>>> Ну а в приведённом тобой коде это экономия на new.


P>>>Вы сначала накидайте полный эквивалент в c# а уже потом сравнивайте


S>>bkb

S>>
S>>Form form = new() {
S>>   header: new(content: aaa)
S>>   main= new() { 
S>>    list new(){
S>>      ItemA = new(id= 'a', content= yyy ),
S>>      ItemB = new(id= 'a', content= zzz ),
S>>   }
S>>   },
S>>   footer= OkCancelFooter {onOk = onOkHandler, onCancel= onCancelHandler, onDispose= onDisposeHandler}
S>>}
S>>


P>Итого — по вашему коду не сильно видна разница между объектами и списками, + шум new()

Ну можно
 list = new List<object>

а new кому то шум, а кому то явное определение

P>Кроме того, у вас вероятно ошибка

P>Вот здесь создаем список у которого два элемента, один с типом ItemA, второй ItemB
P>
P>[
P>      ItemA {id: 'a', content: yyy },
P>      ItemB {id: 'a', content: zzz },
P>]
P>


ну значит будет
      new ItemA() {id= 'a', content= yyy },
      new ItemB() {id= 'a', content= zzz },


или если есть конструктор с параметрами id и content

      new ItemA(id: 'a', content: yyy),
      new ItemB(id: 'a', content: zzz ),


Это не особо принципиально. Это из области флаттера и Dart . У Котлина тоже такое есть.
Но XAML он не для программистов, а дизайнеров. Изначально идея была отделить дизайнеров и программистов
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.