zoukankan      html  css  js  c++  java
  • C# 使用17方法编写Hello World程序(语法深度)

    . A Beginners Hello World   //初学者
    public class HelloWorld
    { 
      public static void Main()
      {
        System.Console.WriteLine("HELLO WORLD");
      }
    }
    . Slightly improved version   //略有提高  
    using System;  //(就这?会用命名空间?)
    public class HelloWorld
    { 
      public static void Main()
      {
        Console.WriteLine("HELLO WORLD");
      }
    }
    . Command Line Arguments   //命令行参数
    using System;
    public class HelloWorld
    { 
      public static void Main(string[] args)   //会传参数了
      {
        Console.WriteLine(args[0]);
      }
    }
    . From Constructor    //构造函数
    using System;
    public class HelloWorld
    { 
      public HelloWorld()
      {
        Console.WriteLine("HELLO WORLD");
      }
      public static void Main() 
      {
        HelloWorld hw = new HelloWorld();  //会用类了?构造?
      }
    }
    . More OO
    using System;
    public class HelloWorld
    { 
      public void helloWorld()
      {
        Console.WriteLine("HELLO WORLD");
      }
      public static void Main() 
      {
        HelloWorld hw = new HelloWorld();
        hw.HelloWorld();   //更进一步的面向对象?会用方法了?
      }
    }
    . From another class  //调用另一个类
    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"); 
      }
    } 
    . Inheritance  //继承
    abstract class HelloWorldBase  //抽象类
    {
        public abstract void writeHelloWorld();
    }
    class HelloWorld : HelloWorldBase  //继承----不得不严肃起来了,能抽象的已经可以做系统架构设计了!
    {
        public override void writeHelloWorld()
        {
            Console.WriteLine("Hello World");
            Console.ReadLine();
        }
    }
    class HelloWorldImp
    {
        static void Main()
        {
            HelloWorldBase hwb = new HelloWorld();
            hwb.writeHelloWorld();
        }
    }
    . Static Constructor //静态构造函数
    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();   //平常我会觉得很可笑----居然写得这么啰嗦
    
      }
    }
    . Exception Handling  //异常处理
    using System;
    public class HelloWorld
    { 
      public static void Main(string[] args)
      {
        try
        {
          Console.WriteLine(args[0]);
        }
        catch(IndexOutOfRangeException e)   //会用异常处理了,但如何更好回收资源呢?异常接下来应该是资源回收啊?我以前也犯这种毛病,GC应该怎么更好使用,我到现在还不是很纯熟
        {
          Console.WriteLine(e.ToString());
        }
      }
    . Creating a DLL and using it in an application   //做组件吗?
    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();
        }
      }
    }
    . Using Property   //实用属性
    using System;
    public class HelloWorld
    {
        public string strHelloWorld
        {
            get   //会用属性了
            {
                return "Hello World";
            }
        }
        public static void Main()
        {
            HelloWorld hw = new HelloWorld();
            Console.WriteLine(hw.strHelloWorld);
        }
    }
    . Using Delegates    //委托!
    using System;
    
    class HelloWorld
    {
        delegate void SimpleDelegate();//定义委托
    
        static void writeHelloWorld()
        {
            Console.WriteLine("HelloWorld");
        }
    
        static void Main()
        {
            SimpleDelegate d = new SimpleDelegate(writeHelloWorld);  //委托?!?!
            d();   //语法的确这么写,但含义无法理解;因为实在体会不出好处来
        }
    }
    . Using Attributes    //我不会!补习去!
    #define DEBUGGING
    using System;
    using System.Diagnostics;
    public class HelloWorld : Attribute
    {
        [Conditional("DEBUGGING")]
        public void writeHelloWorld()
        {
            Console.WriteLine("Hello World");
            Console.ReadLine();
        }
        public static void Main()
        {
            HelloWorld hw = new HelloWorld();
            hw.writeHelloWorld();
        }
    }
    . Using Interfaces   //接口
    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();
        }
    }
    . Dynamic Hello World  //Again
    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);
          // Invoking a method
          object[] nmthdParams = new object[] {};
          string strHelloWorld = (string) hw.InvokeMember(
                  "writeHelloWorld", BindingFlags.Default | 
                  BindingFlags.InvokeMethod, null, 
                  nobj, nmthdParams);
          Console.WriteLine(strHelloWorld);
        }
      }
    . Unsafe Hello World   //Unsafe
    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);
        }
    . Using InteropServices
    using System;
    using System.Runtime.InteropServices;
    class Class1
    {  //COM ,  API接口  我以前就这么低俗地理解.    其实工具会帮你生成
        [DllImport("kernel32")]
        private static extern int Beep(int dwFreq, int dwDuration);
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
            Beep(1000, 2000);
        }}
    

      

  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    2. Add Two Numbers
    链式表的按序号查找
    可持久化线段树——区间更新hdu4348
    主席树——树链上第k大spoj COT
  • 原文地址:https://www.cnblogs.com/chengulv/p/2871352.html
Copyright © 2011-2022 走看看