Cześć, od jakiegoś czasu próbuję zrozumieć, i się nauczyć, wyrażeń drzewiastych i wstrzykiwania zależności. Natrafiłem na razie na takie materiały do nauki:
link
link
Jednakże potrzebowałbym trochę więcej informacji/ćwiczeń/nauki. Może być w postaci jakiegoś podręcznika czy kursu na udemy. Poleca ktoś jakieś tego typu materiały do zapoznania się i zrozumienia zaawansowanych zagadnień programowania? Bo podręczniki na Helionie czy kursy na udemy w większości przypadku obejmują podstawy. A zaawansowanym dla nich są interfejsy czy polimorfizm.
Najlepiej to chyba zacząć od tego: https://learn.microsoft.com/en-us/dotnet/csharp/expression-trees
A żeby nie próbować uczyć się tego tylko teoretycznie to równolegle polecam od razu stosować tę wiedzę w praktyce. Kiedyś implementowałem silnik do filtrowania danych który zbudowałem właśnie na ET i polecam to jako koncept treningowy.
Osobiście nie znam żadnych kursów poświęconych ET ale też ich nigdy nie szukałem bo w zakresie jaki był mi potrzebny dokumentacja była aż nad wyraz pomocna
edit: co do wstrzykiwania zależności to nie ma tam wielkiej filozofii jeśli chodzi o praktyczne zastosowanie, nie potrzeba do tego nawet żadnego kontenera który zarządza cyklem życia tego co wstrzykujesz. Tu ponownie dokumentacja jest bardzo dobra, polecam Microsoft learn bo to naprawdę skarbnica wiedzy, niedoceniania przez wiele osób
Napisz sobie prosty expression evaluator który dostając stringa np.
var test = "2 + 3 - 9"
wyliczy że jest to -4
var test = "2 + 2 * 2 "
wyliczy że jest to 6
to dobrze pokaże koncept który reprezentują Expression Trees, a mianowicie że zachowanie jest dynamicznie budowane na podstawie danych (input string), a nie że modyfikujesz i rekompilujesz kod.
W tegorocznym Advent of Code podczas dnia 21 było zadanie które jest bardzo podobne i mógłbyś spróbować zrobić https://adventofcode.com/2022/day/21
samo zrobienie part. 1 ci wystarczy, ale możesz całość dla zabawy :)
Tutaj masz tutorial jak gościu z MS robi taki expression evaluator, który następnie przekształca w kompilator
Playlist: https://www.youtube.com/playlist?list=PLRAdsfhKI4OWNOSfS7EUu5GRAVmze1t2y
Przerabiałem temat pół roku temu, i mogę stwierdzić że nie ma dobrego kompletnego opracowania tego tematu w internecie i trzeba bazować na wyżej wspomnianych materiałach. Dokumentacja od Microsoftu niestety nie jest kompletna.