Zacznijmy może od tego (obowiązkowo) że to nie ma żadnego znaczenia. Taki szczegół praktycznie nie wpłynie na szybkość działania programu, nawet wywoływany dużo razy w pętli (bo mówimy o konstruktorze - jeśli go wywołujesz sporo razy w pętli to znaczy że alokujesz dużo pamięci => GC będzie miał co robić)
Wiem, że można w linii zapuścić -O2 czy nawet -O3 dla optymalizacji, ale wnikanie w takie detale nie uważam za stracone.
W csc? Nie ma takich opcji :P. Ale optymalizacje są, i prawdopodobnie uproszczą kod tak jak trzeba. Z jednym masz rację, też nie uważam wnikania w takie detale za stracony czas.
Zdeasemblowałem plik w ODA. Ten sposób zajmuje mniej miejsca, ale na tyle nieznacznie, że lepiej pisać jak komu wygodnie Nie zmienia to faktu, że chciał bym zrozumieć ową metodę :)
Nie wnioskuj na temat wydajności patrząc na Cil (kod pośredni). Kod który się wykonuje faktycznie (skompilowany przez JIT) często nie ma wiele wspólnego z kodem pośrednim.
A ten sposób został stworzony dla wygody programisty, nie kompilatora.
Może jest to oszczędność w ilości kodu, ale czy to jest szybsze w wykonywaniu?
Teoria - nie. Może być najwyżej wolniejsze jeśli nie zostanie zinlinowane, ale na 90% będzie. Za chwilę sprawdzę jak to wygląda praktycznie...