CodeProject, Mark Pelf
15.09.2023, 09:00 Uhr
Erklärt: Closures in C#
Anhand von mehreren Beispielen erklärt Softwareentwickler Mark Pelf auf CodeProject die Arbeit mit C# Closures in Theorie und Praxis.
Closures werden erstellt, wenn man innerhalb einer Funktion/Methode in C# eine Variable aus dem "above scope" referenzieren und dann diese Funktion als Delegat weitergeben. Die Variable aus dem "oberen Bereich" wird mit dem Funktionsdelegat weitergegeben. Stellt der Compiler fest, dass eine Funktion auf die Variable aus dem "darüberliegenden Bereich" zugreift, erstellt er einen Datensatz, in dem er erstens die betreffende Funktion und zweitens die Variable aus dem "darüberliegenden Bereich" (die "gefangene" Variable) speichert und sie zusammen weitergibt.
Closures sind knifflig und manchmal schwer zu verstehen. Jeder ambitionierte C#-Entwickler sollte damit vertraut sein, entweder um sie zu verwenden oder um den Code anderer Leute kompetent lesen und debuggen zu können. Closures bieten eine ausgefallene Kapselung in Form einer "gefangenen Variablen", die nicht so leicht zu verstehen ist. Das Tutorial von Mark Pelf versucht, Closures zu erklären und eine ausreichende Anzahl von Beispielen zu liefern. Zielpublikum sind fortgeschrittene C#-Entwickler.