Din perspectiva ingineriei software, ai dreptate, delegații se aseamănă mult cu interfețele funcționale prin faptul că prototip o interfață de funcții.
Ele pot fi de asemenea folosite mult în același fel: în loc să treci o clasă întreagă în care conține metoda de care ai nevoie, poți trece în doar un delegat. Aceasta salvează o mulțime de coduri și creează un cod mult mai ușor de citit.
Mai mult, odată cu apariția expresiilor lambda, ele pot fi acum definite, de asemenea, cu ușurință în zbor, ceea ce reprezintă un bonus imens. În timp ce este posibil de a construi clase în zbor în C#, este într-adevăr o mare durere în fund.
Compararea celor două este un concept interesant. Nu m-am gândit anterior cât de mult sunt ideile dintr-un caz de utilizare și un punct de structurare a codului.