ฉันเพิ่งเห็นคำถามบางอย่างเกี่ยวกับ SO ที่ถามว่าคุณสามารถสร้างโปรแกรม Hello World โดยไม่ต้องใช้เซมิโคลอนใด ๆ โดยใช้ C # ความท้าทายคือการทำเช่นนี้อีกครั้ง แต่ในจำนวนที่สั้นที่สุดของรหัสที่เป็นไปได้!
ฉันเพิ่งเห็นคำถามบางอย่างเกี่ยวกับ SO ที่ถามว่าคุณสามารถสร้างโปรแกรม Hello World โดยไม่ต้องใช้เซมิโคลอนใด ๆ โดยใช้ C # ความท้าทายคือการทำเช่นนี้อีกครั้ง แต่ในจำนวนที่สั้นที่สุดของรหัสที่เป็นไปได้!
คำตอบ:
class X{static void Main(){if(System.Console.Write("Hello, World!")is X){}}}
ฉันลองสิ่งนี้ใน VS2012 ของฉันและใช้งานได้ดีแม้ว่ามันจะค่อนข้างแปลกใจที่คุณสามารถใช้is
โอเปอเรเตอร์กับvoid
...
class M{static void Main(){if(typeof(System.Console).GetMethods()[78].Invoke(null,new[]{"Hello, world!"})is M){}}}
โปรดทราบว่าดัชนีที่เหมาะสมสำหรับWrite(string)
/ WriteLine(string)
อาจแตกต่างกันในระบบของคุณ อย่างไรก็ตามเนื่องจากมีเพียง 106 วิธีเท่านั้นฉันเกือบจะแน่ใจWrite(string)
หรือWriteLine(string)
จะเป็นตัวเลขดัชนีสองหลักในทุกระบบดังนั้นการนับจำนวนตัวอักษรจึงควรจะถูกต้อง
ตัวอย่าง: http://ideone.com/5npky ( Write
เห็นได้ชัดว่าวิธีการคือดัชนี 23 ที่นี่)
null
0
รับจำนวนตัวละครที่ดีจาก 111 :)
class H{static void Main(){if(((System.Action)(()=>System.Console.Write("Hello, world!"))).DynamicInvoke()is H){}}}
เป็นไปได้ที่จะสร้างบางสิ่งให้สั้นลง แต่ฉันค่อนข้างแน่ใจว่าคุณจะต้องทำการโทรแบบอะซิงโครนัส
โกงเล็กน้อย แต่ใช้ได้ถ้าคุณติดตั้ง IronRuby:
class P{static void Main(){if(IronRuby.Ruby.CreateEngine().Execute("puts'Hello World'")>1){}}}
==
ด้วยตัวดำเนินการเปรียบเทียบอักขระเดียว
puts
และสตริง puts'Hello World'
เป็นรหัสทับทิมที่ถูกต้อง
'Hello World'
เป็นโปรแกรม GolfScript ที่ถูกต้องที่พิมพ์Hello World
แม้ว่าHQ9 +จะเอาชนะได้ง่าย)