莊周夢蝶

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

          我的第一個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。打印:
          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方面。


          主站蜘蛛池模板: 嘉定区| 新沂市| 和顺县| 北流市| 新兴县| 竹山县| 建阳市| 古蔺县| 宿松县| 沅江市| 南京市| 保康县| 达尔| 江川县| 松江区| 岳池县| 普兰店市| 改则县| 绥中县| 建瓯市| 湖北省| 航空| 通州市| 龙井市| 呼和浩特市| 西平县| 胶州市| 将乐县| 六安市| 建德市| 甘南县| 南投市| 剑川县| 遵义市| 犍为县| 鹰潭市| 皮山县| 万源市| 阿克陶县| 来宾市| 霍城县|