Делегатите в C#
12 отговора
1161 прегледа
Делегатите в C#
Дали би могло да ми опишете кога е добре да се ползват делегати и предимствата от това ? Тука нещо не вдявам.
Re: Делегатите в C#
Дали би могла да ми опишеш, кой от задниците е твоя?
И какви са предимствата на левия и на десния, тука нещо не вдявам.
Машина за отделяне на кожа и сланина от парени свине
И какви са предимствата на левия и на десния, тука нещо не вдявам.
Машина за отделяне на кожа и сланина от парени свине
Re: Делегатите в C#
А ква е разликата между делегатите и виртуалните ф-ии, освен че не се изисква онаследяване и се поддържа пряко присвояване runtime? Дали е IDispatch подобно, т.е. свързване по време на изпълнение?
Re: Делегатите в C#
Десният задник ми се струва по-добър. Левият е малко дебел сякаш.
Re: Делегатите в C#
Представи си, че левия задник е метод, а десния е делегат към този метод. Така, ако плесна десния задник, ще го усети левия. Или както е казал народа - с един КуРшум, два задника
Друга поговорка, която много точно обрисува делегатите е "де го чукаш, де се пука"
Друга поговорка, която много точно обрисува делегатите е "де го чукаш, де се пука"
Re: Делегатите в C#
И за да станат нещата още по-мързеливи, са измислени т.нар. Multicast делегати, на които можеш да навържеш примерно 10 задника и с един удар да ги шляпнеш и 10-те наведнъж.
хитро, а?
хитро, а?
Re: Делегатите в C#
e да ма не е същото като да се шляпка по 10 пъти различни задници
не се мъчи толкова
аз дълги години въпреки че знаех какво технически представлява виртуалната функция, не виждах къде може да се ползва. с течение на времето обаче, човек почва да вижда приложението на разни неща. верно че в училище се мъчат да те научат изведнъж да почнеш да ползваш и разбираш всичко, но това са утопии. нали знаеш, че през деветте месеца в корема, ембриона минава през разни рибоподобни и гущероподобни стадии? със професионалното развитие е същото мисля.
NE SUTOR ULTRA CREPIDAM
NE SUTOR ULTRA CREPIDAM
Re: Делегатите в C# (размисли и страсти)
using System;
class A{}
class B : A{}
delegate A AssSlapper(B b);
class Program
{
AssSlapper asp = SlapMe;
AssSlapper asp2 = SlapMe2;
static void Main(string[] args)
{}
private static A SlapMe(B b)
{
return new A();
}
private static B SlapMe2(A a)
{
return new B();
}
}
Горният код демонстрира следните концепции, нови за C# 2.0:
1. Директно присвояване на името на метода към инстанция на делегат
2. Ковариантност по отношение на типа на връщаната стойност на метода
3. Контра-вариантност по отношение на сигнатурата на метода

class A{}
class B : A{}
delegate A AssSlapper(B b);
class Program
{
AssSlapper asp = SlapMe;
AssSlapper asp2 = SlapMe2;
static void Main(string[] args)
{}
private static A SlapMe(B b)
{
return new A();
}
private static B SlapMe2(A a)
{
return new B();
}
}
Горният код демонстрира следните концепции, нови за C# 2.0:
1. Директно присвояване на името на метода към инстанция на делегат
2. Ковариантност по отношение на типа на връщаната стойност на метода
3. Контра-вариантност по отношение на сигнатурата на метода
Re: Делегатите в C#
Пич, евала. И сега някой ако не е разбрал какво е това "делегат" - да ходи на село да копа картофите.
:)
---
In God we Trust (all others must submit a X.509 certificate)
:)
---
In God we Trust (all others must submit a X.509 certificate)
Re: не се мъчи толкова
през деветте месеца в корема, ембриона минава през разни рибоподобни и гущероподобни стадии? със професионалното развитие е същото мисля.
- а някои завинаги ще си останем балъци
Green Peas!
- а някои завинаги ще си останем балъци
Green Peas!