В приведенных до сих пор примерах программ при указании параметров, передаваемых методам, использовались типы значений, например 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 имеют разные значения.");
}
}