|
![]() |
#1 |
Участник
|
У нас обычно используется несколько оверлоадов для конструкторов для наиболее частых случаев. Параметры по умолчанию в C# почти не используем потому, что дефолтные значения параметры вкомпилируются в вызывающий код и расширение набора параметров - binary breaking change.
Для необязательных свойств и свойств которые используют нечасто - property initializers. Особенно удобно в тестах. См. также С# 9 primary constructors С кодогенерацией лично я не особо сталкивался. В C# есть partial classes, которые позволяют держать генерированный код отдельно от написанного ручками и смотрtть в него наверное, надо только при отладке. В этом случае, может и лучше, если он написан c использованием возможностей языка, но не принципиально. Еще интересный стиль в maui Пример теста с сокращениями. X++: [TestMethod] public void TestRunUnattended_IfExecutionDeferredInXML_CanCollectDataInAdvance() { ... var delayedSequence = new ERTextFormatXMLElement(DelayedElementName) { IsDeferred = true }; .... var root = new ERTextFormatXMLElement(RootName) { delayedSequence, detailsComponent }; var mapping = new ERFormatMapping(); ... mapping.ParmBinding(new ERFormatBinding{ {delayedSequence, ListItem(CollectedListName)}, {delayedString, StringItem(CollectedListName, ERSingleValueDataContainerList.ValueName)}, {detailsComponent, ListItem(SourceListName)}, ... }); var contentAsString = RunAndReturnDestinationContent(mapping); var expected = new XDocument( new XElement(RootName, new XElement(DelayedElementName, FirstKey), new XElement(DelayedElementName, SecondKey), new XElement(DetailsComponentName, DetailsPrefix + FirstKey), new XElement(DetailsComponentName, DetailsPrefix + SecondKey))); XDocument.Parse(contentAsString) .Should().BeEquivalentTo(expected); } X++: readonly State<int> count = 0; [Body] View body() => new StackLayout { new Label("Welcome to .NET MAUI!"), new Button( () => $"You clicked {count} times.", () => count.Value ++) ) }; |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|