Использует ref
Плохое программирование? Я делаю рефакторинг моего старого кода, который на самом деле использует ref. Я включил анализ кода с установкой Microsoft All Rules и правила говорят, что «Не передавать типы по ссылке»Использование ref - Хорошая практика программирования или нет
Причина: Открытый или защищенный метод в общедоступном типе имеет параметр ref, который принимает примитивный тип, ссылочный тип или тип значения, который не является одним из встроенных типов.
Почему это действительно плохо? Могу ли я использовать их в своих личных методах или внутренних методах? Использование ref в частных/внутренних методах будет хорошей практикой программирования или же?
Edit: Вот некоторые образцы,
public void DoAutoScrollReverse(Rectangle rectangle, int xPosition, int yPosition,
ref int deltaX, ref int deltaY)
{
}
public bool GetPointCoords(Graphics g, Point pMouse, DisplayBlock2D aBlock,
ref Point3MD pt, ref DisplayPoint2D 2dPoint, ref double gapPos)
{
}
Что происходит внутри этих функций является то, что они инициализации, установите, или любой другой.
Обновление: Почему я использую ref? Ну, на самом деле я нет. Его старый код, который мне нужен для рефакторинга. Я избавился от некоторых методов, но сложных функций, подобных во втором примере, я не могу. Существует функция, которая возвращает bool (говорит операцию успешно или нет) и имеет 3 значения ref для разных объектов. Что мне здесь делать? сделайте это частным/внутренним (использует ref в частной/внутренней хорошей практике?)
PLZ читает http://www.yoda.arachsys.com/csharp/parameters.html, а также ответы на http://stackoverflow.com/questions/1981916/c-sharp-ref-keyword-usage –
Мы надеваем У меня почти достаточно контекста, чтобы ответить на это. 'ref' не * всегда * плохой, но его обычно стоит избегать и часто неправильно понимают. Если бы вы могли дать нам пример того, где вы собираетесь его использовать, это очень поможет. –
@JonSkeet добавил некоторые определения методов метода, –