莊周夢蝶

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

          我的第一個C#程序

          Posted on 2007-02-09 10:38 dennis 閱讀(714) 評論(0)  編輯  收藏 所屬分類: C#歷程
          ??? 我得老實承認,我很早就想好好學習下C#,學習下ASP.NET。因為我聽說ASP.NET的開發(fā)速度很讓人羨慕,聽說C#也是蠻有趣的語言。裝了.net Framework2.0,下了C#的語言規(guī)范(本來想找本書,發(fā)現(xiàn)網(wǎng)上的電子書都做的很糟糕,還是看語言規(guī)范得了),寫第一個Hello World。

          using?System;

          public?class?HelloWorld
          {
          ????
          public?static?void?Main()
          ????{
          ????????Console.WriteLine(
          "Hello?World");
          ????}

          ????
          }

          ??? 存為hello.cs。配置好環(huán)境變量,在命令行運行: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;
          ????????????}
          ????????}
          ????}
          }

          ??? 代碼很明顯,一個簡單的棧結(jié)構(gòu),我們把Stack類放在命名空間Acme.Collections中。運行:csc /t:library stack.cs,在應(yīng)用目錄下生成一個stack.dll。我們怎么調(diào)用這個鏈接庫呢?寫個測試類:
          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深入技術(shù)方面的掌握和理解,特別是模式、工作流和Portal方面。


          主站蜘蛛池模板: 江陵县| 宜宾市| 依兰县| 乾安县| 莱州市| 杂多县| 孝感市| 永靖县| 南京市| 富阳市| 长丰县| 洛阳市| 舞钢市| 新巴尔虎右旗| 根河市| 克山县| 托里县| 台东市| 长白| 江门市| 进贤县| 吴忠市| 绿春县| 磐安县| 区。| 浮梁县| 仁布县| 郓城县| 桃园市| 厦门市| 合作市| 客服| 高淳县| 武冈市| 江达县| 庆城县| 凌海市| 镇赉县| 平阳县| 宝山区| 常山县|