Здравствуйте, SV., Вы писали:
SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?
Таких ситуаций нет, хотя бы потому, что любую ситуацию, где используется булева переменная, модно переписать на использование какого-нибудь enum`а или int`a. Предлагаю изменить постановку вопроса на: "когда применение булевого параметра было бы оптимальным".
Здравствуйте, Пацак, Вы писали:
П>Здравствуйте, SV., Вы писали:
SV.>>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?
П>
Здравствуйте, 0x7be, Вы писали:
0>Здравствуйте, SV., Вы писали:
0>Таких ситуаций нет, хотя бы потому, что любую ситуацию, где используется булева переменная, модно переписать на использование какого-нибудь enum`а или int`a.
Концептуально bool и есть перечисление из двух элементов: true и false. Так что вопрос автора не имеет смысла.
А вот и нифига. В том же C# обычно на свойства вешают что-то с относительно тривиальными методами-аксессорами. Если внутри set/get сложная логика, которая может подолгу крутиться и что-то тяжёлое поднимать, то рекомендуют так и писать методы GetSomething/SetSomething
Здравствуйте, SV., Вы писали:
SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?
Совсем недавно создал такой метод. Надо было блокировать и разблокировать часть элементов формы в зависимости от развития ситуации. Свойство нафиг не нужно, потому как состояние меня не интересовало. Читать не надо было. А метод очень даже подошел.
Здравствуйте, konsoletyper, Вы писали:
K>А вот и нифига. В том же C# обычно на свойства вешают что-то с относительно тривиальными методами-аксессорами. Если внутри set/get сложная логика, которая может подолгу крутиться и что-то тяжёлое поднимать, то рекомендуют так и писать методы GetSomething/SetSomething
В таком случае делается класс-конфигурация параметров этого долгого и мучительного процесса. А у класса того исключительно примитивные свойства и будут (см ProcessStartInfo).
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, 0x7be, Вы писали:
0>>Здравствуйте, SV., Вы писали:
0>>Таких ситуаций нет, хотя бы потому, что любую ситуацию, где используется булева переменная, модно переписать на использование какого-нибудь enum`а или int`a.
H>Концептуально bool и есть перечисление из двух элементов: true и false. Так что вопрос автора не имеет смысла.
Это как посмотреть. Может оно и так если в языке L речь идет о каком-то объекте X, который равняется True. (Т.е. X=True). А вот когда мы о самом этом равенстве (X=True) как о высказывании говорим что оно True или False так мы переходим на другой семантический уровень рассуждая о самом высказывании. Здесь уже True или False объекты метаязыка манипулирующего с конструкциями языка L.
Может заумно.. но это ж ветка философия
Здравствуйте, SV., Вы писали:
SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?
(необходим — слишком сильно),
например, в таком случае он нужен:
метод выборки данных по фильтру, состоящему из нескольких его атрибутов, что-то типа findObjectsByCriteria(String param1, Integer param2, ... Boolean paramN, ..., Boolean paramM),
где paramN, paramM соответствуют каким-то булевским атрибутам объектов, среди которых производится поиск
необходимость, как нетрудно догадаться, проистекает из того, что изначально объекты согласно анализу могут иметь среди своих атрибутов либо простые флаговые (типа on/off, active/inactive, started/stopped), либо сочинённые (когда атрибут типа какого-то enum, но у каждого элемента enum, всё равно, есть свой набор булевских субпризнаков, по каждому из которых в программе обработки может появиться ветвление)
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, batu, Вы писали:
B>>Здесь уже True или False объекты метаязыка манипулирующего с конструкциями языка L.
H>И тем не менее этих объектов две штуки и над ними можно определить алгебру (например булеву).
Можно, можно..