Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Какую версию выбрать?

869  1 2 все
Murr патриот14.02.20 11:25
Murr
NEW 14.02.20 11:25 
в ответ Программист 14.02.20 11:14

А что именно не нравится?

Вроде как осталось только ехплицитные конверторы в типы добавить... смущ


Я давно не упоминал, но лет 10 назад генерился код со строго типизированными полями - там данное решение было бы совсем к месту...

#21 
Программист коренной житель14.02.20 11:35
NEW 14.02.20 11:35 
в ответ Murr 14.02.20 11:25
А что именно не нравится?

Ты добавил новую сущность, предназначение которой надо еще понять. В то время как в варианте с методом все видно без объяснений и все ограничения видны непосредственно из сигнатуры класса. Т.е. пишешь SetValue и студия сама показывает тебе разрешенные типы. В твоем же решении мало того, что функций в 2 раза больше, так еще и хрен поймешь что и куда конвертируется.

Вот так и набегают 2Гб кода, который никто не может (и не хочет) понимать :)

#22 
AlexNek патриот14.02.20 14:18
AlexNek
NEW 14.02.20 14:18 
в ответ Murr 14.02.20 10:54
меня интересует проперть-с-ограничением по типам

ну вы батенька и извращенец смущ, пора идти покупать ошейник и кожаные труселя бебе

#23 
Murr патриот14.02.20 15:03
Murr
NEW 14.02.20 15:03 
в ответ Программист 14.02.20 11:35

в варианте с методом

-----

Еще раз - решение методами - не интересует.

Обоснование - с одной сущностью - пропертью Валуе - приходится работать двумя разными способами.

Ну а методы заразервированы для более сложных действий, чем присваивание значения... пусть даже с конвертацией...


так еще и хрен поймешь что и куда конвертируется.

-----

Студия подсветит недопустимый тип...

#24 
Murr патриот14.02.20 15:04
Murr
NEW 14.02.20 15:04 
в ответ AlexNek 14.02.20 14:18

пора идти покупать ошейник и кожаные труселя

-----

Не-е-е-е-т-т-т-т... только не это... согласен на зарплату в рублях...хаха

#25 
AlexNek патриот14.02.20 15:23
AlexNek
NEW 14.02.20 15:23 
в ответ Murr 14.02.20 15:04
согласен на зарплату в рублях.

ну так и грю извращенец, только направление еще не совсем понятное.

Может и в латах возьмешь? бебе

#26 
Murr патриот14.02.20 15:33
Murr
NEW 14.02.20 15:33 
в ответ AlexNek 14.02.20 15:23

Может и в латах возьмешь?

-----

Вопрос - где работодатель их возьмет? - тем более, что брать буду исключительно серебрянными пятилатовиками...

#27 
Программист коренной житель14.02.20 16:17
NEW 14.02.20 16:17 
в ответ Murr 14.02.20 15:03, Последний раз изменено 14.02.20 16:19 (Программист)
Еще раз - решение методами - не интересует.

Ну так я и говорю, что 2Гб спагетти не просто так появилось :)


Обоснование - с одной сущностью - пропертью Валуе - приходится работать двумя разными способами.
Ну а методы заразервированы для более сложных действий, чем присваивание значения... пусть даже с конвертацией...

Я не знаю что у тебя там за объект и в чем его суть (в соседней теме мы узнали, что ты это тоже не знаешь :D), но скорее всего сеттеры там не нужны :)

Можно обойтись одной функцией Init и проинициализировать объект не выводя сеттеры наружу. Тогда код

                            TIntrastatCodeRowProxy icp = this[intrastatCodeRow];
                            string netPriceHomeCurrency = itemsByIntrastatCode.SumNetPriceHomeCurrency.ToString();
                            icp.IntrastatCodeComodity   = netPriceHomeCurrency;
                            icp.StatVal                 = netPriceHomeCurrency;
                            icp.Weight                  = itemsByIntrastatCode.SumWeight.ToString();
                            icp.Sqm                     = itemsByIntrastatCode.SumSqm.ToString();

можно будет заменить на

this[intrastatCodeRow].Initialize(itemsByIntrastatCode);


ну или если аллергия на методы, то никто не мешает сделать сеттер без геттера:

public class TIntrastatCodeRowProxy 
{
...
public TItems.Subset Sebset
{
   set
   {
      string netPriceHomeCurrency = value.SumNetPriceHomeCurrency.ToString();
      IntrastatCodeComodity   = netPriceHomeCurrency;
      StatVal                 = netPriceHomeCurrency;
      Weight                  = value.SumWeight.ToString();
      Sqm                     = value.SumSqm.ToString();
   }
}
...
}

и тогда вообще будет нирвана:

this[intrastatCodeRow].Sebset = itemsByIntrastatCode;

:)

#28 
Murr патриот14.02.20 16:46
Murr
NEW 14.02.20 16:46 
в ответ Программист 14.02.20 16:17

и тогда вообще будет нирвана

-----

Тогда два на сегодня связываемых МЕТОДОМ (как и должно быть - операция достаточно сложная) будут знать друг об дружке там где мне этого не хочется.

Я вот над выносом всех рассчетов в отдельные калькуляторы размышляю... с удовольствием бы вынес... но работы надо делать много... погодю...

Но по факту - да, можно и так закрутить... но пока мне стоит быть поближе к оригиналу...


Ах, да... А кто тебе сказал, что

public class TIntrastatCodeRowProxy {
public TItems.Subset Sebset { ... }
}

есть дело корректное?

Оно, вообще-то, дело полностью внутреннее - прокся для доступа к группе полей _внутри_ строки...

Там еще более неприятное сидит - динамическое построение имен полей с суффиксами...

еще ДВА внутренних, для представления строки, класса...

итить-колотить - с этого и топик начинался... смущ

#29 
AlexNek патриот14.02.20 18:52
AlexNek
NEW 14.02.20 18:52 
в ответ Murr 14.02.20 15:33
что брать буду

хорошо там у вас, телеги с мешками денег. А у нас тут безнал и безнал.

#30 
1 2 все