@Nikita07

Как передать объект методу по ссылке?

Добрый день, недавно начал изучать язык программирования 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) ? Если это вызов метода, то что он принимает в качетсве параметра ?
Если не затруднит, распишите ответ более конкретно, заранее большое спасибо
  • Вопрос задан
  • 288 просмотров
Решения вопроса 2
@ever_clever
Начинающий разработчик
У Вас есть класс MyClass с полями типа int alfa и beta
У класса есть метод который сравнивает поля экземпляра (уже созданного объекта) с другим экземпляром класса MyClass , который передается в качестве параметра
Ответ написан
Комментировать
@Smiz001
C#-developer
1) Параметры в методе разделяются запятой. ob - это название вашего параметра MyClass.
2) if ((ob.alpha == alpha) & (ob.beta == beta)); Сравнение на равенство класс MyClass с другим классом MyClass. Т.к. этот класс имеет всего 2 поля, то и сравнение тут происходит всего по двум полям alpha и beta.
3)v1.SameAs(v2) это вызов метода. В качестве параметра он принимает MyClass.
Читайте больше литературы про ООП (Объектно-ориентированное программирование).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы