как partial.
А как его используют ( в проде например)? Есть наитие, что эта фича языка отдает ароматами говнокода плохого кода
а чем говнокод отличается от плохого кода
он изначально придумывался помоему для winforms, когда часть класса генерилась дизайнером форм (.Designer.cs) а часть писалась прграммистом
Исключительно ради того, чтобы скрыть от тебя весь говнокод который генерирует WinForms
Хз, я лично редко это встречал в вебе. Мб на каком-нибудь винформсе или впф используеется
Я же не об этом спрашивал) не знаю, не хочу об этом даже задумываться. Какой-то философский вопрос
Точно, в десктопе используется, вспомнил. Спасибо!
chatgpt: В C#, ключевое слово partial используется для создания частичных классов, структур или методов. Частичные классы позволяют определить части класса в разных файлах. Это полезно, когда код класса становится слишком большим и сложным, и вы хотите разделить его на логические блоки или разделы для более удобного управления и сопровождения.
кроме вышеперечисленного с винформами и впфом ещё используется совместно с сорс генераторами. описал тип, добавил partial, поставил атрибут и сорс генератор новую часть класса сгенерировал
Можно и для сурс генераторов и для больших классов
неожиданно эта фича помогла нам при совместной работе над одним большим классом, избавила от конфликтор при слиянии )
При кодогенерации
Мне кажется что когда класс большой - не нужно делать partial. Надо его пилить на разные классы. Если класс большой - значит он много что делает. Раз много что делает, значит его можно распилить на классы поменьше
не всегда так получается
почти всегда так, да. поэтому partial в основном для кодогенерации
Это полезно, когда код класса становится слишком большим и сложным, и вы хотите разделить его на логические блоки или разделы для более удобного управления и сопровождения. Это как раз плохое использование partial
Звучит как отговорка в 99% случаев
Вот такое встречал cs class SmthGuiElement : GuiElement { /* code */ } partial static class GuiComposerExtension { public GuiComposer AddSmthGuiElement(this GuiComposer composer, /* args */) { /* create new GuiElement and other code */ } }
ну мб и отговорка, но когда у тебя на проекте 200 файлов по mvp паттерну (общие домены для веба, вин клиента и прочего), там условный view может содержать по 2к строк, partial class'ы хоть как то дают возможность разделять части
Обсуждают сегодня