Операции

Делегаты можно сравнивать на равенство и неравенство. Два делегата равны, если они оба не содержат ссылок на методы или если они содержат ссылки на одни и те же методы в одном и том же порядке. Сравнивать можно даже делега­ты различных типов при условии, что они имеют один и тот же тип возвращае­мого значения и одинаковые списки параметров.

ПРИМЕЧАНИЕ

Делегаты, различающиеся только именами, считаются имеющими разные типы.

С делегатами одного типа можно выполнять операции простого и сложного при­сваивания, например:

Del d1 = new Del(o1.Do); // o1.Do

Del d2 = new Del(o2.Do); // o2.Do

Del d3 = dl + d2; // o1.Do и o2.Do

d3 += dl; // o1.Do, o2.Do и o1.Do

d3 -= d2; // o1.Do и o1.Do

Эти операции могут понадобиться, например, в том случае, если в разных об­стоятельствах требуется вызывать разные наборы и комбинации наборов ме­тодов.

Делегат, как и строка string, является неизменяемым типом данных, поэтому при любом изменении создается новый экземпляр, а старый впоследствии уда­ляется сборщиком мусора.


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



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