2 Dkm_S >Хорош уже больших тем — одной хватает, весь форум перекорёжило.
Если вы про C+# и т.д. или ОС, упаси боже
Я имею ввиду малознакомые обществу...
Глас вопиющего в пустыне да будет услышан на RSDNМногие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
Здравствуйте, IDL, Вы писали:
IDL>Наше начальство хочет отказаться от использования свойств в классах, использовать функции GET/SET. Главный довод лёгкость переноса аппликации на JAVA. Помогите собрать по-больше убедительных доводов почему етого не стоит делать.
Предложи потом своему начальству почитать этот топик...
Здравствуйте, Mab, Вы писали:
Mab>Здравствуйте, IDL, Вы писали: IDL>>Есть идеи как транслировать, понятно можно написать свой парсер, но не благодарная ето работа, наверняка есть что-то готовое. Mab>Можно написать плагин к Решарперу. Требуемый рефакторинг он делать умеет, осталось запустить его в batch mode.
Здравствуйте, IDL, Вы писали:
IDL>Можно по подробней или может примерчик. IDL>П.С Не знал, что в решарпере есть batch mode.
Batch mode можно огранизовать вручную. Главное, что к Решарперу можно писать плагины. Например, orangy этим успешно занимается Я, наверное, тоже подключусь, как только времени свободного побольше станет.
Поищи а разделе Средства Разработки, там был ряд тем, где задавались вопросы разработчикам по поводу API. Ну и, конечно, основное место, где такие вопросы уместны: новостная группа jetbrains.resharper.openapi.
Здравствуйте, IDL, Вы писали:
IDL>Наше начальство хочет отказаться от использования свойств в классах, использовать функции GET/SET. Главный довод лёгкость переноса аппликации на JAVA. Помогите собрать по-больше убедительных доводов почему етого не стоит делать.
Придётся отказаться от готовых компонентных удобств (TypeDescriptor, Binding, …)
В принципе, ничего особо страшного, если: писать методы, а потом на основании их генерировать ещё и свойства…
Здравствуйте, IDL, Вы писали:
IDL>Есть идеи как транслировать, понятно можно написать свой парсер, но не благодарная ето работа, наверняка есть что-то готовое.
Парсеров Явы как грязи. Парсер Шарпа можно взять в R#-е на нашем сайте.
... << RSDN@Home 1.2.0 alpha rev. 628>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Помогите переубедить начальство
От:
Аноним
Дата:
12.01.06 16:54
Оценка:
Хы давно не слышал таких бредовых доводов. Значит мне еще повезло с начальством
Здравствуйте, IDL, Вы писали:
IDL>Наше начальство хочет отказаться от использования свойств в классах, использовать функции GET/SET.
Ну и откажитесь. Велика потеря. Хотя... В языке C# нет возможности сделать поле объекта доступным другим объектам только для чтения (readonly — не считается, так как делает поле доступным только для чтения и для самого объекта тоже ). Чтобы эмулировать это используют private поле и простое public свойство get{return this.field;}
private MyType field;
public MyType Field {get{return this.field;}} // простое свойство
Поскольку такая эмуляция поля доступного только для чтения встречается часто, то компилятор специально обучен оптимизировать такие вызовы (в release версии программы + запущенной вне среды разработки). Оптимизация довольно серьезная. Так например, опыты показывают, что доступ к глубоко вложенному полю или свойству:
aggregate.component.subcomponent // component и subcomponent - поля
aggregate.Component.Subcomponent // Component и Subcomponent - простые свойства
отличается по времени выполнения в пользу... свойств! В данном случае (при глубине = 2) как раз в два раза. (Интерфейсных свойств это, конечно не касается.)
Здравствуйте, IDL, Вы писали:
IDL>Наше начальство хочет отказаться от использования свойств в классах, использовать функции GET/SET. Главный довод лёгкость переноса аппликации на JAVA. Помогите собрать по-больше убедительных доводов почему етого не стоит делать.
Неужели это так принципиально ? Ну не использовать, так не использовать. Абсолютно не вижу проблемы. Вас ведь не ставят в какие-то очень жесткие рамки... Считайте это одним из правил написания кода.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Ну и откажитесь. Велика потеря. Хотя... В языке C# нет возможности сделать поле объекта доступным другим объектам только для чтения (readonly — не считается, так как делает поле доступным только для чтения и для самого объекта тоже ). Чтобы эмулировать это используют private поле и простое public свойство get{return this.field;} СГ>