Globaliseriung im Code
29.11.2013, 00:00 Uhr
Initiative gegen #region
Es gibt immer wieder Sprachkonstrukte, die zu heftigen Diskussionen führen. Die #region in C# ist so ein Elemen. Jetzt hat sich eine Initiative gegründet, die sie abschaffen will.
Ein Schmunzeln ist schwer zu unterdrücken, wenn man sich die Texte auf der Website http://anti-region-legion.org/ durchliest. Vor dem geistigen Auge tauchen andere Initiativen auf wie die Initiativen gegen Laubbläser oder die Initiative zur Abschaffung der Sommerzeit.
Genau wie die Entwickler-unspezifischen meinen es die Betreiber der Website ernst. "Regions verbergen Code", lautet zum Beispiel ein Vorwurf, den Sie dem Konstrukt machen. Der Leser des Codes hat keine Ahnung, was innerhalb einer geschlossenen Region passiert.
Mithilfe von Regions lassen sich Teile vom Quellcode einschließen und dann zusammenfalten. Anstelle des Codes erscheint dann im Code der Name der Region.
#region MeinAbschnitt
class MyClass(){}
class MyClassTwo(){}
#endregion
wird zusammengefaltet dann zu
+MeinAbschnitt
Freilich liegt es in der Verantwortung desjenigen, der den Code schreibt, ob er Regions verwendet oder nicht. Deshalb ist ein Schmunzeln auch angebracht: Man kann sie ja einfach weglassen.
Ganz so einfach ist es aber nicht, denn bei der Übernahme eines Projekts von einem anderen oder beim arbeiten im Team wird man unter Umständen mit den Regions konfrontiert. Im Zweifelsfall helfen aber die Maßnahmen auf der Website, um alle Regions in einem Quelltext loszuwerden.
dir -recurse -filter *.cs $src | foreach ($_) {
$file = $_.fullname
echo $file
(get-content $file) | where {$_ -notmatch "^.*\#(end)?region.*$" } | out-file $file
}