zoukankan      html  css  js  c++  java
  • 不一样的入门:看C# Hello World的17种写法

    摘要:本文针对不同阶段、不同程度的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);
        }
    }
  • 相关阅读:
    linux定时执行任务crontab命令用法
    windows下安装python和依赖包的利器——Anaconda
    Python学习笔记1——Python基础
    Mysql创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES)
    Hadoop伪分布搭建
    Hadoop2.20集群搭建
    对于C++中const & T operator= 的一点思考
    搬家啦~
    利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ
    利用raspberry pi搭建typecho笔记(二) sqlite和typecho部署
  • 原文地址:https://www.cnblogs.com/jara/p/3456672.html
Copyright © 2011-2022 走看看