Posted on 2007-02-09 10:38
dennis 閱讀(711)
評論(0) 編輯 收藏 所屬分類:
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");
????}
????
}
??? 存為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;
????????????}
????????}
????}
}
??? 代碼很明顯,一個簡單的棧結構,我們把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());
????}
}
??? 很明顯,只是把java的import換成了using,而且不需要通配符。編譯test.cs:csc /r:stack.dll test.cs。
??? C#和ruby將是我07年主要的學習計劃,另外就是J2EE深入技術方面的掌握和理解,特別是模式、工作流和Portal方面。