Информация об изменениях

Сообщение Re[13]: Базовое отличие ООП от ФП от 04.04.2024 10:44

Изменено 04.04.2024 11:03 Serginio1

Re[13]: Базовое отличие ООП от ФП
Здравствуйте, sergii.p, Вы писали:

P>>>
P>>>return new User()
P>>>   .withName('Коля')
P>>>   .withEmail('коля+2024@гемайл.ком')
P>>>   .withImage('data:image/png;base64,...')
P>>>


S>> А не проще через конструктор . Ведь readOnly тоже должны быть инициализированы! И конструктор без параметров должен быть запрещен!


SP>например, нам не надо задавать email и картинку. А в конструкторе мы обязаны перечислить все параметры. Их там может быть 20 штук. И мы должны каждый явно указать. Неудобно.


В шарпе есть именованные параметры и параметры по умолчанию

Именованные и необязательные аргументы (Руководство по программированию на C#)

public void ExampleMethod(int required, string optionalstr = "default string",
    int optionalint = 10)

Следующий вызов ExampleMethod вызывает ошибку компилятора, поскольку аргумент предоставляется для третьего параметра, но не для второго.



Если вы знаете имя третьего параметра, можете использовать для выполнения задачи именованный аргумент.

anExample.ExampleMethod(3, optionalint: 4);


Плюс такого подхода ты знаешь значения по умолчанию!
Re[13]: Базовое отличие ООП от ФП
Здравствуйте, sergii.p, Вы писали:

P>>>
P>>>return new User()
P>>>   .withName('Коля')
P>>>   .withEmail('коля+2024@гемайл.ком')
P>>>   .withImage('data:image/png;base64,...')
P>>>


S>> А не проще через конструктор . Ведь readOnly тоже должны быть инициализированы! И конструктор без параметров должен быть запрещен!


SP>например, нам не надо задавать email и картинку. А в конструкторе мы обязаны перечислить все параметры. Их там может быть 20 штук. И мы должны каждый явно указать. Неудобно.


В шарпе есть именованные параметры и параметры по умолчанию

Именованные и необязательные аргументы (Руководство по программированию на C#)

public void ExampleMethod(int required, string optionalstr = "default string",
    int optionalint = 10)

[q]
Если вы знаете имя третьего параметра, можете использовать для выполнения задачи именованный аргумент.


anExample.ExampleMethod(3, optionalint: 4);


Плюс такого подхода ты знаешь значения по умолчанию!