Что не так с выходными параметрами? - PullRequest
9 голосов
/ 16 сентября 2009

Как в SQL, так и в C #, мне никогда не нравились выходные параметры. Я никогда не передавал параметры ByRef в VB6. Что-то о том, чтобы рассчитывать на побочные эффекты, чтобы что-то сделать, просто беспокоит меня.

Я знаю, что они могут обойтись тем, что не могут возвращать несколько результатов из функции, но набор строк в SQL или сложный тип данных в C # и VB работают точно так же и кажутся мне более самодокументированными.

Что-то не так с моим мышлением, или есть источники из авторитетных источников, которые поддерживают меня? Каково ваше личное мнение об этом и почему? Что я могу сказать коллегам, которые хотят проектировать с выходными параметрами, которые могут убедить их использовать разные структуры?

РЕДАКТИРОВАТЬ: интересный поворот - выходной параметр, о котором я задавал этот вопрос, использовался вместо возвращаемого значения. Когда возвращаемое значение равно «ERROR», вызывающая сторона должна обрабатывать его как исключение. Я делал это, но не доволен идеей. Коллега не был проинформирован о необходимости справиться с этим условием, и в результате было потеряно много денег, поскольку процедура молча провалилась!

Ответы [ 11 ]

0 голосов
/ 16 сентября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...