I've attempted to write the traditional 'Hello World' in different styles. This explores the different possibilities of addressing a problem - 'Hello World' with different features of C# language and .NET framework.

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)
{
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

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",
indingFlags.Default | BindingFlags.InvokeMethod,
null, nobj, nmthdParams);
Console.WriteLine(strHelloWorld);
}
}

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

Recommended Free Ebook
Next Recommended Readings