您的位置:首页 > 编程语言 > C#

我理解的17种C#写的Hello World程序

2004-03-11 20:06 489 查看


纯粹语法学习

使用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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: