我的第一個C#程序
我得老實承認,我很早就想好好學習下C#,學習下ASP.NET。因為我聽說ASP.NET的開發速度很讓人羨慕,聽說C#也是蠻有趣的語言。裝了.net Framework2.0,下了C#的語言規範(本來想找本書,發現網上的電子書都做的很糟糕,還是看語言規範得了),寫第一個Hello World。
using System;
public class HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello World");
}
}
public class HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello World");
}
}
存為hello.cs。配置好環境變量,在命令行運行:csc hello.cs。在目錄下會生成一個hello.exe,直接運行hello。打印:
Hello World
看起來跟java確實沒什麼不同,除了字母的大小寫,和java默認引入java.lang包,而這裏需要using System;
稍微複雜點的例子,我們寫一個庫文件stack.dll,或者說一個程序集(java中包的概念):
using System;
namespace Acme.Collections
{
public class Stack
{
Entry top;
public void push(object data)
{
top = new Entry(top, data);
}
public object pop()
{
if (top == null) throw new InvalidOperationException();
object result = top.data;
top = top.next;
return result;
}
public Stack()
{
}
class Entry
{
public Entry next;
public object data;
public Entry(Entry next, object data)
{
this.next = next;
this.data = data;
}
}
}
}
namespace Acme.Collections
{
public class Stack
{
Entry top;
public void push(object data)
{
top = new Entry(top, data);
}
public object pop()
{
if (top == null) throw new InvalidOperationException();
object result = top.data;
top = top.next;
return result;
}
public Stack()
{
}
class Entry
{
public Entry next;
public object data;
public Entry(Entry next, object data)
{
this.next = next;
this.data = data;
}
}
}
}
代碼很明顯,一個簡單的棧結構,我們把Stack類放在命名空間Acme.Collections中。運行:csc /t:library stack.cs,在應用目錄下生成一個stack.dll。我們怎麼調用這個鏈接庫呢?寫個測試類:
using System;
using Acme.Collections;
public class Test
{
public static void Main()
{
Stack stack = new Stack();
stack.push(1);
stack.push(10);
stack.push(100);
Console.WriteLine(stack.pop());
Console.WriteLine(stack.pop());
Console.WriteLine(stack.pop());
}
}
using Acme.Collections;
public class Test
{
public static void Main()
{
Stack stack = new Stack();
stack.push(1);
stack.push(10);
stack.push(100);
Console.WriteLine(stack.pop());
Console.WriteLine(stack.pop());
Console.WriteLine(stack.pop());
}
}
很明顯,隻是把java的import換成了using,而且不需要通配符。編譯test.cs:csc /r:stack.dll test.cs。
C#和ruby將是我07年主要的學習計劃,另外就是J2EE深入技術方麵的掌握和理解,特別是模式、工作流和Portal方麵。
文章轉自莊周夢蝶 ,原文發布時間5.17
最後更新:2017-05-17 11:04:50