В чем разница между Bootstrap Spans & amp; Колонны

Какое большое недоразумение между событиями и делегатами !!! Делегат задает тип TYPE (например, class или interface), тогда как событие является просто своего рода членом (например, полями, свойствами и т. Д.). И, как и любой другой член, событие имеет тип. Тем не менее, в случае события тип события должен быть указан делегатом. Например, вы НЕ МОЖЕТ объявлять событие типа, определенного интерфейсом.

В заключение мы можем сделать следующее наблюдение: тип события ДОЛЖЕН быть определен делегатом. Это основное отношение между событием и делегатом и описано в разделе II.18 Определение событий разделов I-VI ECMA-335 (CLI): :

При типичном использовании TypeSpec (если присутствует) идентифицирует делегата, чья подпись соответствует аргументам, переданным методу пожара события.

blockquote>

Однако этот факт НЕ означает, что событие использует резервную копию поле делегата. По правде говоря, событие может использовать поле поддержки любого другого типа структуры данных по вашему выбору. Если вы явно реализуете событие на C #, вы можете выбрать способ хранения обработчиков событий (обратите внимание, что обработчики событий являются экземплярами типа события, который, в свою очередь, является мандатным типом делегата --- из предыдущего наблюдения ). Но вы можете хранить эти обработчики событий (которые являются экземплярами делегатов) в структуре данных, такой как List или Dictionary или любое другое другое, или даже в поле делегирования поддержки. Но не забывайте, что не обязательно использовать поле делегата.

37
задан Cœur 16 October 2017 в 18:15
поделиться