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

  • 相关阅读:
    C# 特性(Attribute)学习
    ASP.NET Request.MapPath() 与 Server.MapPath()
    Asp.net对http request 处理的全过程!
    保存网址
    寻找silverlight高手帮忙解决问题,谢谢,
    基于.Net Framework的N层分布式应用开发
    VB.NET 代码转为C#
    刚刚开通博客噢 。欢迎大家光临啊
    配置本地服务器的几种方式
    前端必备工具 (记录)
  • 原文地址:https://www.cnblogs.com/babyblue/p/2852.html
Copyright © 2011-2022 走看看