Какую версию выбрать?
А что именно не нравится?
Ты добавил новую сущность, предназначение которой надо еще понять. В то время как в варианте с методом все видно без объяснений и все ограничения видны непосредственно из сигнатуры класса. Т.е. пишешь SetValue и студия сама показывает тебе разрешенные типы. В твоем же решении мало того, что функций в 2 раза больше, так еще и хрен поймешь что и куда конвертируется.
Вот так и набегают 2Гб кода, который никто не может (и не хочет) понимать :)
в варианте с методом
-----
Еще раз - решение методами - не интересует.
Обоснование - с одной сущностью - пропертью Валуе - приходится работать двумя разными способами.
Ну а методы заразервированы для более сложных действий, чем присваивание значения... пусть даже с конвертацией...
так еще и хрен поймешь что и куда конвертируется.
-----
Студия подсветит недопустимый тип...
Еще раз - решение методами - не интересует.
Ну так я и говорю, что 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;
:)
и тогда вообще будет нирвана
-----
Тогда два на сегодня связываемых МЕТОДОМ (как и должно быть - операция достаточно сложная) будут знать друг об дружке там где мне этого не хочется.
Я вот над выносом всех рассчетов в отдельные калькуляторы размышляю... с удовольствием бы вынес... но работы надо делать много... погодю...
Но по факту - да, можно и так закрутить... но пока мне стоит быть поближе к оригиналу...
Ах, да... А кто тебе сказал, что
public class TIntrastatCodeRowProxy { public TItems.Subset Sebset { ... } }
есть дело корректное?
Оно, вообще-то, дело полностью внутреннее - прокся для доступа к группе полей _внутри_ строки...
Там еще более неприятное сидит - динамическое построение имен полей с суффиксами...
еще ДВА внутренних, для представления строки, класса...
итить-колотить - с этого и топик начинался...