1. Какво е възлагане?
Делегатът е референтен тип, който е управлявана версия на указател на функция. В C# делегатите са тип, който съхранява препратките като функции. Делегатите могат да реферират както инстанции, така и статични методи, докато указателите на функции могат да се позовават само на статични методи. Декларацията на делегата е много подобна на функция, за разлика от функция, тъй като делегатът няма тяло на функцията и изисква ключовата дума Delegate. Делегираната декларация определя сигнатура на функцията, която съдържа списък с параметри и тип на връщане. След като делегатът е дефиниран, може да се декларира променлива от типа делегат, която след това може да бъде инициализирана като реферирана от функция със същия подпис като делегата, която след това може да бъде извикана чрез делегатната променлива. (п.с.: Всъщност той му повери клас, а целта му беше да предаде метода като параметър на други методи!) )
Делегатите, макар и много подобни на указателите на функции, не са указатели. Много хора поставят . Делегатът в .NET се разбира като безопасен указател на функция, което е пресилено, а указателят на функцията на имплементацията на делегата е много подобен по това, че предоставя механизъм за обратно извикване на програмата.
2. Четири стъпки на възлагане: 1. Обявете вида на възлагането
2. Съществува метод, който съдържа кода, който трябва да бъде изпълнен
3. Създайте делегирана инстанция
4. Обадете се на делегатския инстанс
3. Примери:
|