27.08.2020, 16:43 | #19 |
Участник
|
отвечаю сам себе:
в c# принято использовать публичные проперти. в языке придуман специальный синтакис для инициализации публичных пропертей https://docs.microsoft.com/ru-ru/dot...ct-initializer в результате, в c# доступны такие конструкции для инициализации Код: StudentName student4 = new StudentName { FirstName = "Craig", LastName = "Playstead", ID = 116 }; причем в конструкторе будут только позиционные параметры. Код: StudentName student4 = new StudentName("private1", new DateTime(2001, 09, 11), 3.0) { FirstName = "Craig", LastName = "Playstead", ID = 116 }; с инициализатором возможны даже такие смешные конструкции Код: var team = new BaseballTeam { ["RF"] = "Mookie Betts", [4] = "Jose Altuve", ["CF"] = "Mike Trout" }; вот, что угодно, лишь бы не делать в C# именованные параметры. https://kotlinlang.ru/docs/reference/functions.html Цитата:
Код: fun reformat(str: String, normalizeCase: Boolean = true, upperCaseFirstLetter: Boolean = true, divideByCamelHumps: Boolean = false, wordSeparator: Char = ' ') { ... } Код: reformat(str, normalizeCase = true, upperCaseFirstLetter = true, divideByCamelHumps = false, wordSeparator = '_' ) Код: reformat(str, wordSeparator = '_') по-любому, в X++ нет ни пропертей, ни синтаксического сахара вокруг них. поэтому конструктор с пустыми параметрами и кучей parm-методов в Аксапте скорее нонсенс. хотя такая конструкция может появится в интеграционном фунционале. parm-методы в Аксаптовском функционале допустимы если в классе есть большое число параметров, как писал DSPIC. если в классе есть обязательные параметры, то они должны присутствовать в конструкторе. если класс написал в концепции иммутабельности, то параметры должны присутствовать в конструкторе. Пример правильной реализации из ax2012 - метод AifWcfProcessor.createAifMessage() Последний раз редактировалось mazzy; 27.08.2020 в 17:36. |
|