}

public void Show() {

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

}

}

class PassOb {

static void Main() {

MyClass obi = new MyClass(4, 5);

MyClass ob2 = new MyClass (6, 7);

Console.Write("obi: "); obi.Show ();

Console.Write("ob2: "); ob2.Show();

if(obi.SameAs(ob2))

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

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

// А теперь сделать объект obi копией объекта ob2. obi.Copy(ob2);

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

if(obi.SameAs(ob2) )

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

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

}

}

Выполнение этой программы дает следующий результат.

obi: alpha: 4, beta: 5 ob2: alpha: 6, beta: 7

оЫ и ob2 имеют разные значения.

оЫ после копирования: alpha: 6, beta: 7 obi и оЬ2 имеют одинаковые значения.

Каждый из методовSame As() иСору() в приведенной выше программе получает ссылку на объект типаMyClassв качестве аргумента. МетодSame As() сравнивает значения переменных экземпляраalphaиbetaв вызывающем объекте со значениями аналогичных переменных в объекте, передаваемом посредством параметраob.Данный метод возвращает логическое значениеtrueтолько в том случае, если оба объекта имеют одинаковые значения этих переменных экземпляра. А методСору() присваивает значения переменныхalphaиbetaиз объекта, передаваемого по ссылке посредством параметраob,переменнымalphaиbetaиз вызывающего объекта. Как показывает данный пример, с точки зрения синтаксиса объекты передаются методам по ссылке таким же образом, как и значения обычных типов.

Способы передачи аргументов методу

Как показывает приведенный выше пример, передача объекта методу по ссылке делается достаточно просто. Но в этом примере показаны не все нюансы данного процесса. В некоторых случаях последствия передачи объекта по ссылке будут отличаться от тех результатов, к которым приводит передача значения обычного типа. Для выяснения причин этих отличий рассмотрим два способа передачи аргументов методу.

Перейти на страницу:

Похожие книги