C#学习进阶Hello World的17种写法代码分享

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

(0)

相关推荐

  • 不用IDE写C#的Hello World的方法

    用Visual Studio等IDE写C#的Hello World非常简单,但脱离了IDE你能不能打印出Hello World呢?这不是说工作时脱离IDE,而是学习一下CLR的执行模型. Hello World 新建一个记事本,输入如下代码,另存为HelloWorld.txt. using System; namespaceHelloWorld { classProgram { static voidMain(string[] args) { Console.WriteLine("Hello W

  • C#之CLR内存字符串常量池(string)

    C#中的string是比特殊的类,说引用类型,但不存在堆里面,而且String str=new String("HelloWorld")这样的重装也说没有的. 我们先来看一个方法: class Program { static void Main(string[] args) { String s = "HelloWorld"; Console.WriteLine(s); } } 然后我们用ildasm.exe工具把它生成IL语言来看一看它里面是怎么玩的: .met

  • C#之CLR内存深入分析

    本文不再对值类型进行讨论,主要讨论一下引用类型.如要看内存值类型的朋友可以看一下前一篇C#之CLR内存原理初探. C#引用类型具体分析如下: 先来装备两个类: internal class Employee { public static Employee LookUp(string name) { return null; } public virtual string GetProgressReport() { return string.Empty; } } internal class

  • C#之CLR内存原理初探

    本文初步讲述了C#的CLR内存原理.这里所关注的内存里面说没有寄存器的,所以我们关注的只有托管堆(heap),栈(stack), 字符串常量池(其中string是一个很特殊的对象) 首先我们看两个方法: void M1() { string name = "Tom"; M2(name); } void M2(string name2) { int length = 10; double rate = 10.0; name2 = "Joe"; return; } 这里

  • C#学习进阶Hello World的17种写法代码分享

    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

  • Python列表删除的三种方法代码分享

    1.使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> print(i1) ['b', 'c', 'd'] >>> del语句将值从列表中删除后,就再也无法访问它了. 2.使用pop()删除元素 pop()可删除列表末尾的元素,并让你能够接着使用它.食欲弹出(pop)源自这样的类比:列表就是一个栈,而删除列表末尾的元素相当于弹出栈顶元素. >>

  • java实现遍历树形菜单两种实现代码分享

    文本主要向大家分享了java实现遍历树形菜单的实例代码,具体如下. OpenSessionView实现: package org.web; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.se

  • java检查服务器的连通两种方法代码分享

    首先要了解一下ping的内容. 概述 PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序.Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议:回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答).它是用来检查网络是否通畅或者网络连接速度的命令.作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用

  • Python编程产生非均匀随机数的几种方法代码分享

    1.反变换法 设需产生分布函数为F(x)的连续随机数X.若已有[0,1]区间均匀分布随机数R,则产生X的反变换公式为: F(x)=r, 即x=F-1(r) 反函数存在条件:如果函数y=f(x)是定义域D上的单调函数,那么f(x)一定有反函数存在,且反函数一定是单调的.分布函数F(x)为是一个单调递增函数,所以其反函数存在.从直观意义上理解,因为r一一对应着x,而在[0,1]均匀分布随机数R≤r的概率P(R≤r)=r. 因此,连续随机数X≤x的概率P(X≤x)=P(R≤r)=r=F(x) 即X的分

  • PHP三元运算的2种写法代码实例

    首先,我们现在看一个简单的例子: 复制代码 代码如下: <?php$a = 2;($a == 1) ? $test = "企业" : $test = "地区";#写法一echo $test;?> 上述例子呢,先判断$a是否为1 如果是 将"企业"这个字符串存入$test变量里然后输出,如果不是 将"地区"这个字符串存入$test变量里然后输出:上诉例子代码等价于: 复制代码 代码如下: <?php$a = 2

  • vuex学习进阶篇之getters的使用教程

    目录 1.设置gettes 事件 2.使用调用 3.最终页面示例 getters的优点: 总结 紧接上篇,本片主要讲讲vuex 中 getters的使用,示例中使用了vuex的modules,getters的使用与vue组件中computed中使用类似,再学习的过程中,注意举一反三 1.设置gettes 事件 index.js dict.js 我们在index.js中设置了两个getters事件,在子模块dict.js中设置了两个getters事件 2.使用调用 <template> <

  • 收集整理ASP.NET中17种常用正则表达式

    "^/d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-/d+)(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?/d+$" //整数 "^/d+(/./d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+/.[0-9]*[1-9][0-9

  • C++学习进阶之Makefile基础用法详解

    目录 1. Makefile基本语法与执行 2. Makefile简化过程 3. Makefile生成并使用库 3.1 动态库的建立与使用 3.2 动态加载库的建立与使用 总结 1. Makefile基本语法与执行 为什么要使用 Makefile? Makefile 文件描述了整个工程的编译.链接的规则. 为工程编写 Makefile 的好处是能够使用一行命令来完成"自动化编译".只需提供一个(通常对于一个工程来说会是多个)正确的 Makefile,接下来每次的编译都只需要在终端输入&

  • C语言学习进阶篇之万字详解指针与qsort函数

    目录 前言 函数指针 代码一 代码二 函数指针数组 函数指针数组的用途 计算器的基本代码 函数指针实现简单的计算机 函数指针数组实现简单计算机 指向函数指针数组的指针 回调函数 简单的冒泡排序 冒泡排序的优化 qsort函数 qsort函数介绍 qsort实现冒泡排序 qsort排序结构数据 模拟实现qsort函数 写在最后 前言 前面学到了字符指针,指针数组是一个存储指针的数组,数组指针是一个指向函数的指针,数组参数和指针参数.其中不乏有很多需要注意的知识点,例如:&数组名和数组名表示的含义,

随机推荐