莊周夢蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          我的第一個C#程序

          Posted on 2007-02-09 10:38 dennis 閱讀(725) 評論(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。打?。?br />
          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方面。


          主站蜘蛛池模板: 黄梅县| 家居| 恭城| 福州市| 拜泉县| 万山特区| 仁怀市| 阿拉尔市| 洛宁县| 大方县| 花莲县| 万安县| 惠东县| 曲麻莱县| 叶城县| 武乡县| 灵寿县| 桦川县| 达拉特旗| 彭泽县| 郓城县| 德州市| 南乐县| 馆陶县| 彰化市| 酒泉市| 永仁县| 汨罗市| 淄博市| 洛浦县| 肇州县| 长治县| 商丘市| 凯里市| 高邑县| 成安县| 慈溪市| 辰溪县| 洞口县| 比如县| 赞皇县|