Передача по ссылке в C#: почему ref меняет всё | Ссылочные типы против ref
Sudipto Kumar Mukherjee
0:00 / 0:00
Передача по ссылке в C#: почему ref меняет всё | Ссылочные типы против ref
303 просмотра · 7 дней назад
Sudipto Kumar Mukherjee
1,18 тыс. подписчиков
303 просмотра · 7 дней назад
Почему изменение свойства внутри метода влияет на исходный объект, а присвоение совершенно нового объекта — нет?
В этом видео по C# мы рассмотрим одну из наиболее часто неправильно понимаемых тем в C#: **ссылочные типы и передача параметров**.
Используя простой класс `Person`, мы рассмотрим три важные ситуации:
Передача объекта ссылочного типа в метод
Изменение свойств объекта внутри метода
Присвоение нового объекта параметру
Использование ключевого слова `ref`, позволяющего методу заменить ссылку вызывающего объекта
Начнем с:
Person p = new Person { Name = "Tim", Age = 25 };
Затем мы увидим, почему:
Change(p);
может изменить `p.Name` с `Tim` на `David`, даже если параметр передается обычным образом.
Далее мы рассмотрим, почему простое выполнение:
q = new Person { Name = "Sudipto", Age = 46 };
*не* заменяет `p` вызывающего объекта.
Наконец, мы используем:
Replace(ref p);
чтобы продемонстрировать, как `ref` позволяет параметру метода выступать в качестве псевдонима для переменной вызывающего объекта, позволяя заменить саму ссылку.
Это важная основа для понимания передачи параметров в C#, ссылочных типов, ссылок на объекты и ключевого слова `ref`.
Рассматриваемые темы
Ссылочные типы C#
Параметры методов C#
Передача объектов в методы
Передача по значению в C#
Ключевое слово `ref` в C#
Ссылки на объекты
Ссылка против ссылочной переменной
Изменение объекта против замены объекта
Часто задаваемые вопросы на собеседовании по C#
Если вы изучаете C# или готовитесь к собеседованию по .NET, понимание этого различия чрезвычайно важно.
Это именно тот фундаментальный принцип C#, который может показаться простым на первый взгляд, но может привести к нескольким дополнительным вопросам на собеседовании по .NET. Если вы .NET-разработчик и хотите заложить прочные основы, а не просто заучивать вопросы для собеседований, я провожу индивидуальные занятия и наставничество по .NET.
Я подробно разбираю C#, .NET, ASP.NET Core, Web API, SQL, архитектуру, шаблоны проектирования и концептуальное понимание, ориентированное на собеседования, выявляя при этом небольшие пробелы и заблуждения, которые часто обнаруживаются на собеседованиях.
📱 WhatsApp / Звонок: +91-9331897923
🌐 Веб-сайт:
https://supernovaservices.com
Если вам это показалось полезным, подпишитесь на канал. Я регулярно создаю видеоролики о концепциях C# и .NET, вопросах для собеседований и основах, которые разработчики часто упускают из виду.
Удачного кодирования! 😊
#CSharp #DotNet #CSharpTutorial #Programming #DotNetInterview