J'ai récemment vu quelques questions sur SO qui demandaient si vous pouviez créer un programme Hello World sans utiliser de points-virgules en C #. Le défi est de recommencer, mais avec le moins de code possible!
J'ai récemment vu quelques questions sur SO qui demandaient si vous pouviez créer un programme Hello World sans utiliser de points-virgules en C #. Le défi est de recommencer, mais avec le moins de code possible!
Réponses:
class M{static void Main(){if(typeof(System.Console).GetMethods()[78].Invoke(null,new[]{"Hello, world!"})is M){}}}
Notez que l'index approprié pour Write(string)
/ WriteLine(string)
peut être différent sur votre système. Cependant, comme il n'y a que 106 méthodes au total, je suis presque certain que ce sera Write(string)
ou WriteLine(string)
sera un numéro d'index à deux chiffres sur chaque système, donc le nombre de caractères devrait être généralement valide.
Démo: http://ideone.com/5npky (la Write
méthode est apparemment l'index 23 ici)
null
à 0
. Obtenez un joli nombre de personnages de 111 :)
class H{static void Main(){if(((System.Action)(()=>System.Console.Write("Hello, world!"))).DynamicInvoke()is H){}}}
Il est probablement possible de produire quelque chose d'un peu plus court, mais je suis sûr que vous allez avoir besoin de faire une sorte d'appel asynchrone.
Un peu de triche, mais fonctionne si vous avez installé IronRuby:
class P{static void Main(){if(IronRuby.Ruby.CreateEngine().Execute("puts'Hello World'")>1){}}}
==
par un opérateur de comparaison à un caractère.
puts
et la chaîne. puts'Hello World'
est un code rubis valide
'Hello World'
est un programme GolfScript valide qui imprimeHello World
. Bien que HQ9 + le battra facilement.)