![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
как вы считаете хорошая или плохая идея M$ ввести понятие partial классов ?
я пока нашел очень большой (для меня) минус - объявление такого класса в разных файлах разное.. например :
как "концы" -то искать?..или может есть какие "патентованные технологии"?) Это сообщение отредактировал(а) jonie - 9.4.2008, 23:09 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| yar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 8.9.2007 Где: Одесса, Украина Репутация: нет Всего: 8 |
Насколько мне известно, основная причина введения partial-классов и уже partial-методов состоит в упрощении взаимодействия со сгенерированным мастерами кодом.
Не думаю, что разнесение класса по нескольким файлам в каком-либо другом случае имеет больше достоинств, нежели недостатков. Полагаю, если класс разрастается до такой степени, что ему тесно в своём файле, может быть лучше посмотреть, нельзя ли разбить его на несколько классов, чем "размазывать" один класс по нескольким файлам... --------------------
Если бы строители возводили здания так, как программисты пишут программы, первый же дятел уничтожил бы мировую цивилизацию.Джеральд Вайнберг |
|||
|
||||
| DrunkProgrammer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 23.10.2007 Где: Омск Репутация: 1 Всего: 1 |
Насколько я знаю partial используется при создании класса двумя или более разработчиками, чтобы они друг другу не мешали.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
jonie, хоть класс и раскидан по разным файлам, перемещаться по методам, полям и свойствам можно так же как с обычным классом - в комбобоксе над редактором кода все они есть.
З.Ы. не всегда есть возможность разделить функциональность класса, иногда действительно удобнее по нескольким файлам раскидать - ту же форму например. -------------------- ![]() |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
DrunkProgrammer распиливание по файлам не поможет : например оба называют функции foo() ...
mr.DUDA оно, конечно, понятно... а вот как например узнать что из себя представляет класс? от чего наследован, какие интерфейсы реслизует ? каждый раз лазить в object explorer ?... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
хорошая Не согласен. Разбивание класса на несколько классов - это "размазывание" прав и обязанностей этого класса. И далеко не всегда это допустимо и эффективно. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Gelis |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 26.10.2006 Где: Брест Репутация: 2 Всего: 4 |
Все нормальные люди для этих целей используют системы версионирования, например Subversion. Для разделения логики и представления данный метод тоже не подходит. Вижу лишь одно преимущество от использования партиал классов это отделение сгенерированного кода, от кода написанного разработчиком Это сообщение отредактировал(а) Gelis - 10.4.2008, 15:09 |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
а то что я выше написал? в разных местах класс объявляется по-разному... для меня это было мягко говоря шоком) учитывая как себя позиционирует c# (мол язык для недопуская ошибок, даже break ставить велит в switch)... вы считаете что partial помогает избегать ошибки?) лично я считаю что он их только плодит.
tol05 чем она хороша, кроме как облегчение жизни для писателей всяческих визардов? -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 4 Всего: 56 |
Ключевое слово partial введено для поддержки инструментов кодогенерации и для других целей его просто напросто не надо использовать!!! А сама идея - замечательная Это сообщение отредактировал(а) source777 - 10.4.2008, 23:32 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
можно было с легкостью заменить это на #autogeneratedregion какой-нибудь.
не вижу сложностей с этим. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Никогда не писал сам partial-классы и не собираюсь) Мое субъективное мнение что лучше делить класс на составные классы правильным образом, но не использовать партиал. Просто мне они не нравяться
Но без partial-классов дизайнер был бы неудобным, а WPF вообще бы не работал. Так что штука нужная, просто для специфичных вещей. -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 4 Всего: 56 |
+ почитай про частичные методы, такого ты никакими регионами ни за что не добьёшься.... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
1. спорить на тему хорошо или плохо мы жили раньше не буду
2. Мне partial классы нравятся. Считаю очень нужной фичей. Кто не хочет ее использовать - тот не использует. Те же слова в адрес "дробителей классов" ... я сначала начал думать над аргументами в защиту своей позиции,.. а потом просто набрал в гугле фразу "partial classes" и кликнул по этой ссылке... мне понравился такой аргумент автора
Дальше искать не стал, но дополню, что частичные классы также позволяют разнести по отдельным файлам не только UI и business, но также и public class interface, private class interface, protected class interface, properties и т.д.и т.п. При этом дебагать и сопровождать эти "модули" становится проще, апгрейдать их - безопаснее. Код читается легче и только тот, который нужен в данный момент. Кроме того, введение частичных классов позволило (в частности в ASP.NET 2.0) убрать из страниц автогенерируемый код, который ИМХО занимал от 20 до 80 процентов всего кода aspx ...
в том-то и дело, что файлы были слишком засорены подобными конструкциями. Почему засорены? Да потому что ничего в таком коде менять нельзя, ни добавить, ни удалить... Так для каких целей такой код присутствовал в каждом файле? Это сообщение отредактировал(а) tol05 - 11.4.2008, 10:42 -------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
| jonie |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
лично меня как больше Сишника очееень смутило разное объявление в разных частях... меня это разочаровало... не надо говорить что автогеренраторы лезут только в свои классы - сколько раз уже встречал баги например на TableAdaper.Fill() методов (по 2-3 раза подряд)... в любом случае это холивар, так что стоит его перкратить - один фиг решать не нам ) Это сообщение отредактировал(а) jonie - 11.4.2008, 23:17 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |