Vous pouvez faire un peu mieux que les exemples donnés à ce jour, en fait ... vous pouvez l'étendre de façon arbitraire:
class Test
{
delegate Hofstadter Hofstadter();
static void Main()
{
// Unfortunately I'm clearly not as smart as the real thing
Hofstadter douglas =() => null;
douglas()()()()()()();
}
}
Et voici une autre alternative horrible, pour l'art supplémentaire ASCII:
class Test
{
delegate __ ___();
delegate ___ __(___ _);
static void Main()
{
___ _ =() => null;
_()((_))();
}
}
S'il vous plaît ne jamais, jamais le faire.
EDIT: Un dernier - bien qu'il soit autant de simplement remplacer les choses par des underscores comme toute autre chose, et la réutilisation des noms chaque fois que possible:
class Test
{
delegate void _();
delegate __<_> ___<_>();
delegate ___<_> __<_>(___<_> ____);
static ___<_> ____<_>(___<_> ____) { return ____; }
static __<_> ____<_>() { return ____<_>; }
static void Main()
{
((__<_>)____)(____<_>)();
}
}
Quel est le but possible pour cela (autre que d'avoir deux yeux vides vous regardent dans le code)? –
Cette question fait vraiment ressortir le côté obscur de la Force - je suis impressionné de voir des esprits si brillants rivaliser avec enthousiasme pour produire un code véritablement horrifiant! – Mathias
@Mathias: Code mal est le funnest. Et la «meilleure» partie est, plus votre code devient diabolique, plus vous le voulez. –