Chương trình Hello World ngắn nhất không có dấu hai chấm


14

Gần đây tôi đã thấy một số câu hỏi về SO hỏi rằng bạn có thể tạo chương trình Hello World mà không sử dụng bất kỳ dấu chấm phẩy nào bằng C # không. Thách thức là làm điều này một lần nữa, nhưng với số lượng mã ngắn nhất có thể!


3
Tôi cho rằng điều này có nghĩa là một thách thức ngôn ngữ cụ thể? Nếu không, có rất nhiều ngôn ngữ trong đó nhiệm vụ này sẽ không quan trọng. (Ví dụ: 'Hello World'là một chương trình GolfScript hợp lệ có thể in Hello World. Mặc dù HQ9 + sẽ dễ dàng đánh bại nó.)
Ilmari Karonen

@llmari Xin lỗi, vâng, tôi đã cập nhật câu hỏi. Tôi đã gắn thẻ C # nhưng nó không tồn tại và tôi không có đại diện để tạo nó, cảm ơn.
Bali C

Câu trả lời:


12

C #, 76

class X{static void Main(){if(System.Console.Write("Hello, World!")is X){}}}

Tôi đã thử điều này trong VS2012 của tôi và nó hoạt động rất tốt, mặc dù điều khá bất ngờ là bạn có thể áp dụng istoán tử cho void...


15

C # 85 ký tự

class H{static void Main(){if(System.Console.Out.WriteAsync("Hello, world!")is H){}}}

Phiên bản .NET nào đây? .NET 4 dường như không chứa định nghĩa cho TextWriter.WriteAsync ().
primo

3
@primo .NET 4.5 nào.
Bob

12

C # (114)

class M{static void Main(){if(typeof(System.Console).GetMethods()[78].Invoke(null,new[]{"Hello, world!"})is M){}}}

Lưu ý rằng chỉ mục thích hợp cho Write(string)/ WriteLine(string)có thể khác trên hệ thống của bạn. Tuy nhiên, vì chỉ có tổng số 106 phương thức, tôi gần như chắc chắnWrite(string) hoặcWriteLine(string) sẽ là số chỉ mục gồm hai chữ số trên mỗi hệ thống, do đó, tổng số ký tự nên có giá trị chung.

Bản trình diễn: http://ideone.com/5npky ( Writephương thức rõ ràng là chỉ số 23 tại đây)


Giải pháp này là tuyệt vời. +1
primo

Tôi cũng nghĩ thật mỉa mai là sau khi ghép lại, nó xuất hiện chính xác hơn 1 ký tự của bạn :)
mellamokb

7
Có thể lưu ba ký tự bằng cách thay đổi nullthành 0. Nhận số lượng nhân vật đẹp là 111 :)
Timwi

8

115 byte

class H{static void Main(){if(((System.Action)(()=>System.Console.Write("Hello, world!"))).DynamicInvoke()is H){}}}

Có thể tạo ra thứ gì đó ngắn hơn một chút, nhưng tôi khá chắc chắn rằng bạn sẽ cần thực hiện một số cuộc gọi không đồng bộ.


4

C # 96 95 94 ký tự

Một chút gian lận, nhưng hoạt động nếu bạn đã cài đặt IronRuby:

class P{static void Main(){if(IronRuby.Ruby.CreateEngine().Execute("puts'Hello World'")>1){}}}

2
Bạn có thể lưu 1 char bằng cách thay thế ==bằng toán tử so sánh một ký tự.
Peter Taylor

@PeterTaylor Tôi đã cập nhật mã. Cảm ơn lời đề nghị tuyệt vời này!
Cristian Lupascu

Tôi cũng loại bỏ khoảng cách giữa putsvà chuỗi. puts'Hello World'là mã ruby ​​hợp lệ
Cristian Lupascu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.