Перейти к содержимому

Передача по ссылке в 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