17 cách viết “Hello World” với C#
Chúng ta thường bắt đầu một ngôn ngữ lập trình bằng cách viết lại chương trình Hello World! (chương trình in ra dòng chữ “Hello World!”). Đây được coi là chương trình đầu tiên của các ngôn ngữ lập trình. Có rất nhiều cách viết chương trình “Hello World!” trong từng ngôn ngữ lập trình. Bài viết này sẽ giới thiệu 17 cách viết chương trình “Hello World!” với ngôn ngữ C#. Hãy cùng khám phá nào
1. “Hello World” cho người mới bắt đầu (A beginners Hello World)
using System; namespace Hello_World { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello World!"); } } }
2. Phiên bản cải tiến hơn chút (Slightly improved version)
using System; namespace Hello_World { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
3. Command line Arguments
using System; namespace Hello_World { class Program { static void Main(string[] args) { Console.WriteLine(args[0]); } } }
4. Sử dụng hàm khởi tạo (Constructor)
using System; namespace Hello_World { class HelloWorld { public HelloWorld() { Console.WriteLine("Hello World!"); } static void Main(string[] args) { HelloWorld hw = new HelloWorld(); } } }
5. Sử dụng hàm
using System; namespace Hello_World { class HelloWorld { public void helloWorld() { Console.WriteLine("Hello World!"); } static void Main(string[] args) { HelloWorld hw = new HelloWorld(); hw.helloWorld(); } } }
6. Sử dụng một class khác
using System; namespace Hello_World { class HelloWorld { static void Main(string[] args) { PrintHelloWorld phw = new PrintHelloWorld(); phw.WriteHelloWorld(); } } public class PrintHelloWorld { public void WriteHelloWorld() { Console.WriteLine("Hello World!"); } } }
7. Kế thừa (Inheritance)
using System; namespace Hello_World { abstract class helloWorldBase { public abstract void writeHelloWorld(); } class HelloWorld : helloWorldBase { public override void writeHelloWorld() { Console.WriteLine("Hello World!"); } } class Program { static void Main(string[] args) { HelloWorld hw = new HelloWorld(); hw.writeHelloWorld(); } } }
8. Hàm tạo tĩnh (Static Constructor)
using System; namespace Hello_World { class HelloWorld { private static string strHelloWorld; static HelloWorld() { strHelloWorld = "Hello World!"; } void writeHelloWorld() { Console.WriteLine(strHelloWorld); } static void Main(string[] args) { HelloWorld hw = new HelloWorld(); hw.writeHelloWorld(); } } }
9. Xử lý ngoại lệ (Exception Handing)
using System; namespace Hello_World { class HelloWorld { static void Main(string[] args) { try { Console.WriteLine(args[0]); } catch (IndexOutOfRangeException e) { Console.WriteLine(e.ToString()); } } } }
10. Tạo một file .dll và sử dụng nó trong một ứng dụng khác.
– Tạo project class library
using System; namespace HelloLibrary { class HelloMessage { public string message { get { return "Hello World!"; } } } }
– Sử dụng File .dll vừa được tạo ra để sử dụng cho chương trình mới.
using System; using HelloLibrary; namespace Hello_World { class HelloWorld { static void Main(string[] args) { HelloMessage m = new HelloMessage(); } } }
11. Sử dụng Property
using System; namespace Hello_World { class HelloWorld { public string strHelloWorld { get { return "Hello World!"; } } static void Main(string[] args) { HelloWorld hw = new HelloWorld(); Console.WriteLine(hw.strHelloWorld); } } }
12. Sử dụng Deligates
using System; namespace Hello_World { class HelloWorld { public static void writeHelloWorld() { Console.WriteLine("Hello World!"); } public delegate void SimpleDeligate(); static void Main(string[] args) { SimpleDeligate d = new SimpleDeligate(writeHelloWorld); d(); } } }
13. Sử dụng Attributes
#define DEBUGGING using System; using System.Diagnostics; namespace Hello_World { class HelloWorld : Attribute { [Conditional("DEBUGGING")] public void writeHelloWorld() { Console.WriteLine("Hello World!"); } static void Main(string[] args) { HelloWorld hw = new HelloWorld(); hw.writeHelloWorld(); } } }
14. Sử dụng Interfaces
using System; namespace Hello_World { interface IHelloWorld { void writeHelloWorld(); } class HelloWorld:IHelloWorld { public void writeHelloWorld() { Console.WriteLine("Hello World!"); } static void Main(string[] args) { HelloWorld hw = new HelloWorld(); hw.writeHelloWorld(); } } }
15. Dynamic Hello World
using System; using System.Reflection; namespace Hello_World { public class HelloWorld { public string writeHelloWorld() { return "HelloWorld"; } public static void Main(string[] args) { Type hw = Type.GetType(args[0]); // Instantiating a class dynamically object[] nctorParams = new object[] { }; object nobj = Activator.CreateInstance(hw, nctorParams); // Invoking a method object[] nmthdParams = new object[] { }; string strHelloWorld = (string)hw.InvokeMember( "writeHelloWorld", BindingFlags.Default | BindingFlags.InvokeMethod, null, nobj, nmthdParams); Console.WriteLine(strHelloWorld); } } }
16. Unsafe Hello World
using System; using System.Reflection; namespace Hello_World { public class HelloWorld { unsafe public void writeHelloWorld(char[] chrArray) { fixed (char* parr = chrArray) { char* pch = parr; for (int i = 0; i < chrArray.Length; i++) Console.Write(*(pch + i)); } } public static void Main() { HelloWorld hw = new HelloWorld(); char[] chrHelloWorld = new char[] { 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd' }; hw.writeHelloWorld(chrHelloWorld); } } }
17. Sử dụng InteropServices
using System; using System.Runtime.InteropServices; namespace Hello_World { public class HelloWorld { [DllImport("kernel32")] private static extern int Beep(int dwFreq, int dwDuration); static void Main(string[] args) { Console.WriteLine("Hello World"); Beep(1000, 2000); } } }
18. Kết luận:
Có rất nhiều cách để viết một chương trình máy tính. Tùy vào khả năng sáng tạo của một người mà ta sẽ viết một chương trình với những cách khác nhau. Nhưng trong thực tế, cách viết nào nhanh và đem lại hiệu quả cao sẽ được sử dụng.
For Better Life!
Mình ko hiểu trừong hợp 13, 15. Không biết nó dùng trong các trừong hợp nào khi lập trình?
Thanks you