莊周夢蝶

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

          我的第一個C#程序

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


          主站蜘蛛池模板: 嘉峪关市| 灵宝市| 黑水县| 卢湾区| 深圳市| 盱眙县| 城市| 农安县| 平遥县| 彩票| 灯塔市| 娄烦县| 九江县| 济南市| 太湖县| 兴和县| 井陉县| 白银市| 马公市| 孟连| 会泽县| 双桥区| 沅陵县| 颍上县| 读书| 定南县| 习水县| 寿光市| 蒙自县| 历史| 靖安县| 宁明县| 建昌县| 太湖县| 平原县| 宣恩县| 长顺县| 隆子县| 贵港市| 汝城县| 衡阳县|