Передача объектов методам по ссылке

В приведенных до сих пор примерах программ при указании параметров, передаваемых методам, использовались типы значений, например int или double. Но в методах можно также использовать параметры ссылочного типа, что не только правильно, но и весьма распространено в ООП. Подобным образом объекты могут передаваться методам по ссылке.

//пример передачи обьектов методам по ссылке.

using System;

class MyClass

{

int alpha, beta;

public MyClass(int i, int j)

{

alpha = i;

beta = j;

}

//возвратить значение true, если параметр ob имеет те же значения, что и вызывающий обьект.

public bool SameAs(MyClass ob)

{

if ((ob.alpha == alpha) & (ob.beta == beta)) return true;

else return false;

}

//сделать копию обьекта ob.

public void Copy(MyClass ob)

{

alpha = ob.alpha;

beta = ob.beta;

}

public void Show()

{

Console.WriteLine("alpha: {0}, beta: {1}", alpha, beta);

}

}

class PassOb

{

static void Main()

{

MyClass ob1 = new MyClass(4, 5);

MyClass ob2 = new MyClass(6, 7);

Console.Write("ob1: ");

ob1.Show();

Console.Write("ob2: ");

ob2.Show();

if (ob1.SameAs(ob2)) Console.WriteLine("ob1 и ob2 имеют одинаковые значиния.");

else Console.WriteLine("ob1 и ob2 имеют разные значения.");

Console.WriteLine();

//а теперь сделать обьект ob1 копией обьекта ob2;

ob1.Copy(ob2);

Console.Write("ob1 после копирования: ");

ob1.Show();

if (ob1.SameAs(ob2)) Console.WriteLine("ob1 и ob2 имеют одинаковые значения.");

else Console.WriteLine("ob1 и ob2 имеют разные значения.");

}

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: