Niedawno widziałem kilka pytań na temat SO, które zadały pytanie, czy możesz stworzyć program Hello World bez użycia średników za pomocą C #. Wyzwanie polega na zrobieniu tego ponownie, ale przy możliwie jak najkrótszym kodzie!
Niedawno widziałem kilka pytań na temat SO, które zadały pytanie, czy możesz stworzyć program Hello World bez użycia średników za pomocą C #. Wyzwanie polega na zrobieniu tego ponownie, ale przy możliwie jak najkrótszym kodzie!
Odpowiedzi:
class M{static void Main(){if(typeof(System.Console).GetMethods()[78].Invoke(null,new[]{"Hello, world!"})is M){}}}
Zauważ, że właściwy indeks dla Write(string)
/ WriteLine(string)
może być inny w twoim systemie. Jednakże, ponieważ istnieją tylko 106 Metody sumie jestem prawie pewien, albo Write(string)
czy WriteLine(string)
będzie dwucyfrowy numer indeksu na każdym systemie, więc liczba znaków powinny być generalnie zachowują ważność.
Demo: http://ideone.com/5npky ( Write
metoda najwyraźniej tutaj znajduje się indeks 23)
null
na 0
. Zdobądź niezłą liczbę znaków 111 :)
class H{static void Main(){if(((System.Action)(()=>System.Console.Write("Hello, world!"))).DynamicInvoke()is H){}}}
Prawdopodobnie możliwe jest wyprodukowanie czegoś nieco krótszego, ale jestem prawie pewien, że będziesz potrzebować wykonać jakieś asynchroniczne połączenie.
Trochę oszukiwać, ale działa, jeśli masz zainstalowany IronRuby:
class P{static void Main(){if(IronRuby.Ruby.CreateEngine().Execute("puts'Hello World'")>1){}}}
==
jednoznakowym operatorem porównania.
puts
ciągiem a łańcuchem. puts'Hello World'
jest poprawnym kodem ruby
'Hello World'
jest to prawidłowy program do drukowania w GolfScriptHello World
. Chociaż HQ9 + z łatwością go pokona.)