Чем больше я вижу, что ref используется в производственном коде, тем чаще я сталкиваюсь с неправильным использованием и тем больше боли это причиняет мне. Я возненавидел это ключевое слово, потому что с точки зрения создания фреймворка оно кажется глупым. Когда было бы неплохо сообщить пользователям вашего кода о том, что может быть изменена ссылка/значение объекта из-под них?
Напротив, я люблю не использовать ключевые слова и еще больше люблю, когда ключевые слова вообще не используются, в обоих случаях из-за гарантий, которые вы даете при их использовании. Ref, с другой стороны, не дает никаких гарантий, за исключением того, что вы будете вынуждены инициализировать параметр перед его передачей, даже если в нем ничего не изменится.
Однако я не мудрый разработчик; Я уверен, что у него есть практическое применение. Я просто хотел бы знать, что они из себя представляют.