摘要:本文針對不同階段、不同程度的C#學習者,介紹了C# Hello World的17種不同寫法,希望會對大家有所幫助。(C# Hello World寫法入門、C# Hello World寫法進階、C# Hello World的特別寫法三種角度進行推進),本人覺得非常有趣,有興趣的可以好好學習下。
C# Hello World寫法入門:
1. 初學者
public class HelloWorld { public static void Main() { System.Console.WriteLine("HELLO WORLD"); } }
2. 改進的HELLO WORLD
using System; public class HelloWorld { public static void Main() { Console.WriteLine("HELLO WORLD"); } }
3. 命令行形式
using System; public class HelloWorld { public static void Main(string[] args) { Console.WriteLine(args[0]); } }
4. 構造函數
using System; public class HelloWorld { public HelloWorld() { Console.WriteLine("HELLO WORLD"); } public static void Main() { HelloWorld hw = new HelloWorld(); } }
C# Hello World寫法進階:
5. 面向對象
using System; public class HelloWorld { public void helloWorld() { Console.WriteLine("HELLO WORLD"); } public static void Main() { HelloWorld hw = new HelloWorld(); hw.HelloWorld(); } }
6. 從其他類
using System; public class HelloWorld { public static void Main() { HelloWorldHelperClass hwh = new HelloWorldHelperClass(); hwh.writeHelloWorld(); } } public class HelloWorldHelperClass { public void writeHelloWorld() { Console.WriteLine("Hello World"); } }
7. 繼承
abstract class HelloWorldBase { public abstract void writeHelloWorld(); } class HelloWorld : HelloWorldBase { public override void writeHelloWorld() { Console.WriteLine("Hello World"); } } class HelloWorldImp { static void Main() { HelloWorldBase hwb = HelloWorld; HelloWorldBase.writeHelloWorld(); } }
8. 靜態構造函數
using System; public class HelloWorld { private static string strHelloWorld; static HelloWorld() { strHelloWorld = "Hello World"; } void writeHelloWorld() { Console.WriteLine(strHelloWorld); } public static void Main() { HelloWorld hw = new HelloWorld(); hw.writeHelloWorld(); } }
9. 異常處理
using System; public class HelloWorld { public static void Main(string[] args) { try { Console.WriteLine(args[0]); } catch (IndexOutOfRangeException e) { Console.WriteLine(e.ToString()); } } }
10. 名字空間
using System; namespace HelloLibrary { public class HelloMessage { public string Message { get { return "Hello, World!!!"; } } } } //------ using System; using HelloLibrary; namespace HelloApplication { class HelloApp { public static void Main(string[] args) { HelloMessage m = new HelloMessage(); } } }
11. 屬性
using System; public class HelloWorld { public string strHelloWorld { get { return "Hello World"; } } public static void Main() { HelloWorld hw = new HelloWorld(); Console.WriteLine(cs.strHelloWorld); } }
12. 代理
using System; class HelloWorld { static void writeHelloWorld() { Console.WriteLine("HelloWorld"); } static void Main() { SimpleDelegate d = new SimpleDelegate(writeHelloWorld); d(); } }
13. 使用屬性
#define DEBUGGING using System; using System.Diagnostics; public class HelloWorld : Attribute { [Conditional("DEBUGGING")] public void writeHelloWorld() { Console.WriteLine("Hello World"); } public static void Main() { HelloWorld hw = new HelloWorld(); hw.writeHelloWorld(); } }
14. 接口
using System; interface IHelloWorld { void writeHelloWorld(); } public class HelloWorld : IHelloWorld { public void writeHelloWorld() { Console.WriteLine("Hello World"); } public static void Main() { HelloWorld hw = new HelloWorld(); hw.writeHelloWorld(); } }
C# Hello World的特別寫法:
15. 動態Hello World
using System; using System.Reflection; namespace HelloWorldNS { 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);//, 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. 不安全代碼Hello World
using System; 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. 使用InteropServices
using System; using System.Runtime.InteropServices; class Class1 { [DllImport("kernel32")] private static extern int Beep(int dwFreq, int dwDuration); static void Main(string[] args) { Console.WriteLine("Hello World"); Beep(1000, 2000); } }