|
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
|
|||||||||||
В чем отличие ref27.08.2015, 12:52. Показов 2744. Ответов 24
Метки нет (Все метки)
В C# любой объект передается в метод по ссылке. Тогда в чем разница?
0
|
|||||||||||
| 27.08.2015, 12:52 | |
|
Ответы с готовыми решениями:
24
Чем отличается ref и out
В чем отличие GetHashCode и Equals? |
|
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
|
|
| 27.08.2015, 13:13 | |
|
Silenty, в первом случае передача объекта, во втором передача ссылки на объект
Добавлено через 37 секунд https://msdn.microsoft.com/ru-... 2147217396
0
|
|
|
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
|
|
| 27.08.2015, 13:23 [ТС] | |
|
Nikeys174, Разве в первом случае передается ссылка на объект? Я не вижу разницы. Объясните на пальцах
0
|
|
|
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
|
|
| 27.08.2015, 13:35 | |
|
Silenty, есть передача значения, это первый вариант и он классический. У меня такое встречалось в приложении состоящем из двух классов, в первом классе объявили массивы, один задали, второй для ответа, передаем массивы в другой класс и массив для ответа будет пустым, потому что передав по значению мы создали дубль, хотя код отработал правильно. Передав по ссылке, мы вернем верное решение.
Пороюсь в записях скину пример
0
|
|
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
||||||
| 27.08.2015, 13:47 | ||||||
|
Silenty, во втором случае, если ты присвоишь object,у null, то весь объект который ты передал в метод тоже будет null. В случае с первым методом внешний объект будет доступен.
1
|
||||||
|
Заблокирован
|
||
| 27.08.2015, 13:48 | ||
хотелось бы на это посмотреть...Массив всегда ссылочный тип, вне зависимости от того, какой тип у его элементов
0
|
||
|
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
|
|
| 27.08.2015, 13:55 [ТС] | |
|
BozKurt, Это единственное отличие?
0
|
|
|
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
|
||||||
| 27.08.2015, 14:05 | ||||||
|
Ev_Hyper,
Жутко извиняюсь, за такую оплошность, такой приём я использовал для подсчета количества элементов массива, подходящих под условие, при использовании двух классов для получения результата. Была учебная задача. Тогда спрошу тоже, массив ссылочный как Вы утверждаете, независимо от элементов, здесь мы передаем его по ссылке, для чего?
0
|
||||||
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
||
| 27.08.2015, 14:06 | ||
Сообщение было отмечено Silenty как решение
Решение
Silenty, по сути да, емнип. Но это в корне меняет поведение объекта, точнее ссылки на этот объект, которую мы передаём в метод.
Добавлено через 45 секунд Так изменение массива произойдёт на ходу по мере выполнения тела метода, если бы параметр был без модификатора ref, то этот изменённый массив нужно было бы return'ить, чтобы получить изменения.
1
|
||
|
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
|
|
| 27.08.2015, 14:10 | |
|
BozKurt, без ref-а, студия пишет ошибку
0
|
|
|
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
|
|||||||||||
| 27.08.2015, 14:15 | |||||||||||
|
Ev_Hyper, Silenty, BozKurt,
Program.cs
Добавлено через 1 минуту Разъясните мне тогда этот вот вопрос, потому что я точно помню, что преподаватель меня долго тыкал носом в этот ref для массива
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
|
|
| 27.08.2015, 14:36 [ТС] | |
|
BozKurt, Спасибо! Тему можно закрывать
0
|
|
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
|
| 27.08.2015, 14:39 | |
|
Nikeys174, так неудивительно, что тыкал. Передаешь уже инициализированный массив и валишь туда элементы. А что если OutOfRange ? Или наоборот элементов будет меньше.
Не так бы придирался, если бы было out и внутри метода инициализация.
0
|
|
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
||||||||||||||||
| 27.08.2015, 14:40 | ||||||||||||||||
|
Nikeys174, поменяй объявление метода на такое:
1
|
||||||||||||||||
|
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
|
|
| 27.08.2015, 14:42 | |
|
Anderok, препод требует всю инициализацию в одном классе, если речь не идет о вспомогательных элементах
Добавлено через 1 минуту BozKurt, буду теперь разумнее, спасибо
0
|
|
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
||
| 27.08.2015, 14:45 | ||
|
0
|
||
|
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
|
|
| 27.08.2015, 15:00 | |
|
BozKurt, как и видим в методе Main сразу вся инициализация, вот его требование
0
|
|
|
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
|
|
| 27.08.2015, 15:12 | |
|
Nikeys174, тем не менее, необходимость ref модификатора это никак не объясняет.
0
|
|
|
|
|
| 27.08.2015, 15:13 | |
|
Nikeys174, BozKurt, Anderok, господа, о чем речь?
В примере Nikeys174 ref абсолютно ни к чему. Я не вижу смены указателя (читай ссылки) на массив внутри метода.
0
|
|
| 27.08.2015, 15:13 | |
|
Помогаю со студенческими работами здесь
20
В чем отличие от Equals от оператора == В чем отличие свойств от полей?
В чем отличие реализации и обобщения(наследование)?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|