zoukankan      html  css  js  c++  java
  • 我理解的17种C#写的Hello World程序

    纯粹语法学习

    使用C#编写17种Hello World程序 
    --------------------------------------------------------------------------------
     
    1. A Beginners Hello World   初学者
    public class HelloWorld
    {
      public static void Main()
      {
        System.Console.WriteLine("HELLO WORLD");
      }
    }

    2. Slightly improved version   略有提高
    using System;  (就这?会用命名空间?)

    public class HelloWorld
    {
      public static void Main()
      {
        Console.WriteLine("HELLO WORLD");
      }
    }

    3. Command Line Arguments
    using System;

    public class HelloWorld
    {
      public static void Main(string[] args)   //会传参数了
      {
        Console.WriteLine(args[0]);
      }
    }

    4. From Constructor
    using System;
    public class HelloWorld
    {
      public HelloWorld()
      {
        Console.WriteLine("HELLO WORLD");
      }

      public static void Main()
      {
        HelloWorld hw = new HelloWorld();  //会用类了?构造?
      }
    }

    5. More OO
    using System;
    public class HelloWorld
    {
      public void helloWorld()
      {
        Console.WriteLine("HELLO WORLD");
      }

      public static void Main()
      {
        HelloWorld hw = new HelloWorld();
        hw.HelloWorld();   //更进一步的面向对象?会用方法了?
      }
    }

    6. 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");
      }
    }

    7. Inheritance
    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. 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();   //平常我会觉得很可笑----居然写得这么啰嗦

      }
    }


    9. 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());
        }
      }
    }

    10. 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();

        }
      }
    }

    11. Using Property  
    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 Delegates    //委托!
    using System;
    class HelloWorld
    {
      static void writeHelloWorld() {
        Console.WriteLine("HelloWorld");
      }
      static void Main() {
        SimpleDelegate d = new SimpleDelegate(writeHelloWorld);  //委托?!?!
        d();   //语法的确这么写,但含义无法理解;因为实在体会不出好处来
      }
    }

    13. Using Attributes    //我不会!补习去!
    #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 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();
      }
    }

    15. Dynamic Hello World  //我不会again!补习去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);
        }
      }
    }

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

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

  • 相关阅读:
    Anagram
    HDU 1205 吃糖果(鸽巢原理)
    Codeforces 1243D 0-1 MST(补图的连通图数量)
    Codeforces 1243C Tile Painting(素数)
    Codeforces 1243B2 Character Swap (Hard Version)
    Codeforces 1243B1 Character Swap (Easy Version)
    Codeforces 1243A Maximum Square
    Codeforces 1272E Nearest Opposite Parity(BFS)
    Codeforces 1272D Remove One Element
    Codeforces 1272C Yet Another Broken Keyboard
  • 原文地址:https://www.cnblogs.com/babyblue/p/2852.html
Copyright © 2011-2022 走看看