不一样的入门:视C# Hello World的17种写法

不一样的入门:看C# Hello World的17种写法
http://developer.51cto.com/art/200908/145356.htm


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);  
    }  
    }