вполне допускаю, что вначале были Get\Set методы, а потом , по какой-либо причине, понадобились проперти. А те не вычистил. Или они много, где использовались. Или же, наоборот, были проперти, а потом, ему надо в какой-то метод передать указатель на функцию Get\Set. Т.к. отсутствуют примеры использования, то сложно сказать.
по привычке? Или, как я указал выше, какой-нибудь метод принимает делегат как параметр (если это вам более понятнее, чем вышеупомянутый указатель на функцию).
>>по привычке? Весьма странная привычка для C#. Тем паче что сниппет #prop так не делает, а код похож на генеренный.
Про указатель я понял, но это тоже довольно необычный для C# подход, да и разве нельзя делегатом обернуть лямбду которая просто дёрнет проперти? Зачем загаживать интерфейс? Да и вообще, как я писал выше, такой класс впринципе не нужен: это же просто Tuple!
>> Да любая бизнес логика перед присвоением. Всмысле для реализации контракта? А разве нельзя проверять его в пропертях?
>>Ну, скажем, это функции интерфейса IMyIdGuidPair. В интерфейс можно и проперти вынести. Ведь проперти это просто сахар! Они же реально в set_, get_ превращаются.
>> А еще есть сериализаторы, причем как XML, так и JSON, и бывает надо, чтоб они работали по разному Добиваться этого посредством проперти и сеттера как-то странно)
Использование - прозаичное; никаких передач методов. Более того, я имею доступ к version control: сначала было написано правильно (в две строчки), потом - убито совсем, потом - единовременно закоммичен этот монстр.
Есть еще вариант что автор краем уха слышал что нужно использовать аксессоры/мутаторы (например, от знакомого джависта) и будучи джуниором "применил на практике":)
Или же, наоборот, были проперти, а потом, ему надо в какой-то метод передать указатель на функцию Get\Set.
Т.к. отсутствуют примеры использования, то сложно сказать.
Reply
Reply
Или, как я указал выше, какой-нибудь метод принимает делегат как параметр (если это вам более понятнее, чем вышеупомянутый указатель на функцию).
Reply
Весьма странная привычка для C#. Тем паче что сниппет #prop так не делает, а код похож на генеренный.
Про указатель я понял, но это тоже довольно необычный для C# подход, да и разве нельзя делегатом обернуть лямбду которая просто дёрнет проперти? Зачем загаживать интерфейс? Да и вообще, как я писал выше, такой класс впринципе не нужен: это же просто Tuple!
Reply
Reply
Всмысле для реализации контракта? А разве нельзя проверять его в пропертях?
>>Ну, скажем, это функции интерфейса IMyIdGuidPair.
В интерфейс можно и проперти вынести. Ведь проперти это просто сахар! Они же реально в set_, get_ превращаются.
>> А еще есть сериализаторы, причем как XML, так и JSON, и бывает надо, чтоб они работали по разному
Добиваться этого посредством проперти и сеттера как-то странно)
Reply
Более того, я имею доступ к version control: сначала было написано правильно (в две строчки), потом - убито совсем, потом - единовременно закоммичен этот монстр.
Reply
Reply
Leave a comment