Как передать объект методу по ссылке? Добрый день, недавно начал изучать язык программирования C# и столкнулся с небольшой проблемой передачи объектов методам по ссылке, покопавшись в литературе и интернете, нашел пару статье с данной темой и несколько примеров программ, но с одним примером так разобраться и не смог, помогите пожалуйста разобратьсяusing System;
class MyClass
{
int alpha, beta;
public MyClass(int A, int B)
{
alpha = A;
beta = B;
}
public bool SameAs(MyClass ob)
{
if ((ob.alpha == alpha) & (ob.beta == beta));
return true;
else
return false;
}
public void Copy(MyClass ob)
{
alpha = ob.alpha;
beta=ob.beta;
}
public void Show()
{
Console.WriteLine("alpha: {0}, beta {1}", alpha, beta);
}
class Program
{
static void Main()
{
MyClass v1 = new MyClass (4,5);
MyClass v2 = new MyClass (6,7);
Console.Write("v1: ");
v1.Show();
Console.Write("v2: ");
v2.Show();
if (v1.SameAs(v2))
Console.WriteLine("v1 и v2 имеют одинаковые значения");
else
Console.WriteLine("v1 и v2 имеют разные значения");
v1.Copy(v2);
Console.WriteLine("После копирования");
if (v1.SameAs(v2))
Console.WriteLine("v1 и v2 имеют одинаковые значения");
else
Console.WriteLine("v1 и v2 имеют разные значения");
}
Что происходит в этой части кода: public bool SameAs(MyClass ob), я так понимаю данный метод принимает в качестве параметра сам класс ? и что за параметр ob ?
Что потом сравнивается ? (if ((ob.alpha == alpha) & (ob.beta == beta));)
И послдений вопрос, что это - v1.SameAs(v2) ? Если это вызов метода, то что он принимает в качетсве параметра ?
Если не затруднит, распишите ответ более конкретно, заранее большое спасибо

21 Авг 2019 в 06:59
189 +1
0
Ответы
1

Да, вы правы, метод SameAs принимает в качестве параметра объект класса MyClass, который обычно обозначается как ob. В данном методе происходит сравнение значений переменных alpha и beta текущего объекта с значениями переменных alpha и beta объекта ob. Если значения совпадают, то метод возвращает true, иначе - false.

Таким образом, когда вы вызываете метод v1.SameAs(v2), вы сравниваете значения переменных объекта v1 c значениями переменных объекта v2. Этот метод не принимает никаких дополнительных параметров, так как объект v2 передается как параметр методу через вызов.

Ваш код в конце программы сначала вызывает метод v1.SameAs(v2) для проверки исходных значений объектов v1 и v2, затем копирует значения объекта v2 в объект v1 с помощью метода v1.Copy(v2), и снова вызывает метод v1.SameAs(v2) для проверки, что объекты имеют одинаковые значения после копирования.

Надеюсь, это поможет вам лучше понять, как работает данный код и передача объектов методам по ссылке в C#. Если у вас еще остались вопросы, не стесняйтесь задать их.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир