亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

<展現C#>前言(補充)和第三章第一個C#程序

2019-11-18 22:07:26
字體:
來源:轉載
供稿:網友
前言
0.1  提要
    歡迎閱讀《展現 C#》(PResenting C#)。這本書是你提高企業編程語言的一條捷徑。這種企業編程語言帶有下一代編
程語言服務運行時(NGWS Runtime):C#(發音"C sharp")。
    NGWS Runtime 是一個不僅管理執行代碼、同時也提供使編程更加容易的動態環境。編譯器產生受管代碼以指向這種受
管理執行環境。你獲得跨平臺語言集成、跨平臺語言異常處理、增強安全性、版本控制、安排支持和查錯服務。
    支持NGWS Runtime 的主要語言是C#。支持NGWS框架的很多程序是用C#寫的,因此,在一些帶有NGWS Runtime的編譯器
中,它的編譯器可以被認為是非常經得起測試且是經過優化的。C#語言借鑒了C++,但是具備現代化和新增的類型安全——
使C#成為企業解決方案的首選語言。

0.2  誰應該讀這本書
     如果你對編程很陌生,這本書不適合你。這本書企圖讓程序員解脫并使用C#,基于他們已經擁有的知識。《展現
C#》的目標瞄準了已經具有如C/C++、VB、java或其它編程經驗的程序員。
     如果你具有C++的背景,轉向C#會很容易,但是,如果你精通于其它不同的語言,這本書也會耗掉你的一些日子。如
果你有一點COM編程的知識,這本會更有趣,但會COM編程不再是必要的。

0.3  這本書如何組織
     第一章  C#簡介——這一章把你帶到C#逛一回,同時回答了有關你應該考慮學習C#的問題。
     第二章  NGWS Runtime 的技術基礎——介紹NGWS Runtime為運行的C#代碼所提供的低層架構。
     第三章  第一個C#應用程序——創建真正第一個C#應用程序(否則它是什么呢?),它就是一個"Hello World"應用程
序。
     第四章  C#類型——可以看到用在C#應用程序中的各種類型。探索值型和引用型的區別,還有如何加框和消框。
     第五章  類——C#功能真正強大的標志,它是具有類的面向對象的編程。你會學到好多好多的東西,如構造函數、析
構函數、方法、屬性、索引和事件等。
     第六章  控制語句——對應用程序實行流程控制。探索C#提供的各種選擇和陳述語句。
     第七章  異常處理——獲得了編寫實現異常處理的應用程序技巧,擁有這種技巧,在NGWS Runtime世界,你是一個好
的公民
     第八章  用C#寫組件——用C#構建組件,因為支持NGWS Runtime,它可以被不同語言平臺的客戶使用。
     第九章   配置和安排——學到如何用C#有條件地進行編譯工作,和如何為你的C#源碼自動地創建文檔。另外,這一
章將介紹到NGWS的版本技術問題。
     第十章   用非受管代碼交互操作——發現你如何使用C#內部的非受管代碼,且非受管代碼如何與你的C#組件一起交
互操作。
     第十一章  C#代碼查錯——獲得使用SDK查錯工具的技巧,可以在應用程序中準確地找到錯誤并修改它們。
     第十二章  安全——探索NGWS Runtime的安全概念。學到代碼訪問安全性和基于角色的安全性。

0.4 使用這本書你需要什么?
     從這本書的觀點看,你所需要的就是下一代windows服務軟件開發包(NGWS SDK)。盡管至少只要有NGWS Runtime 和C#
編譯器就可以,但當探索這些激動人心的新技術功能 時,在一臺機器上裝有說明文件檔和所有的SDK工具(包括
debugger),將是一個極好的主意。
     這本書不需要你裝在機器上的Visual Studio 7的任何工具。我僅建議你要有一個優秀的支持行數的程序編輯器,用
以編輯C#源文件。
     ……
     (省略掉一些有關出版過程和表示感謝的段落)

0.5 關于作者
     Christoph Wille,微軟系統工程師(MCSE)、微軟系統開發師(MCSD)、Netware網絡管理員(CNA)和MCP-IT,作為一個
網絡咨詢人員和程序員,特別精通Windows  DNA。微軟認為他是asp方面最有價值的人(MVP),他是和微軟在一起使用早期
的C#版本的少數開發者之一。
     Christoph 獨自或參與了幾本書的寫作,包括Sams出版社的《自學ADO2.5  21天》、《自學ASP  24小時》、《自學
MCSE TCP/ip 14天》和《MCSE 訓練指南:SQL Server 7管理》。



                                第三章     第一個C#應用程序

3.0   選擇一個編輯器
         盡管我是一個頑固的Notepad狂,但這次我不建議用它編輯源碼。原因是你正在與真正的編程語言打交道,使用
Notepad編輯源碼編譯時可能產生大量的錯誤信息行(C++程序員知道我在說什么。)
         你有幾種選擇??梢灾匦屡渲媚阈湃蔚睦鲜絍isual C++ 6.0,使它能夠和C#源文件一起工作。第二種選擇是使用
新的Visual Studio 7。第三,你可以用任何第三方程序編輯器,最好要支持行數、色彩編碼、工具集成和良好的搜索功
能。CodeWright就是其中一個例子,如圖3.1所示。

         圖3.1 CodeWright 是你可以用于創建C#代碼文件眾多可能編輯器中的一個。

        當然,在所提到的編輯器中,沒有一個對創建C#程序來說是必要的。用Notepad肯定可以編輯。但是,如果你考慮
到要編寫更大的項目,最好還是忍痛割愛吧。

3.1  "Hello World" 代碼
        討論編輯器有點離題 ,讓我們把話題轉回到一個非常出名的小應用程序。這個最短的C#版本應用程序見清單
3.1。把它存起來,文件名為 helloworld.cs,以便使你能按照說明,完成諸如編譯應用程序等其它余下來的步驟。

        清單 3.1   最簡單的 "Hello World "程序

         1: class HelloWorld
         2: {
         3:  public static void Main()
         4:  {
         5:   System.Console.WriteLine("Hello World");
         6:  }
         7: }

        在C#中,代碼塊(語句組)由大括弧({和})所括住。所以,甚至你以前沒有C++的經驗,你也可以說出Main()方法就
是HelloWorld 類語句的一部分,因為類被括在所定義的大括弧中。
        C#應用程序(可執行)的入口點就是 static Main 方法,它必須包含在一個類中。僅有一個類能使用該標志定義,
除非你告訴編譯器它應使用哪一個 Main 方法(否側,會產生一個編譯錯誤)。
        和C++相比,Main的第一個字母是大寫的M,而不是你曾經使用過的小寫字母。在這個方法中,你的程序開始并結
束。方法中可以調用其它方法——如這個例子中,用于輸出文本——或者創建對象并激活該方法。
        正如你所看到的,Main方法返回一個void類型。
        public static void Main()
        盡管看到這些語句時,C++程序員肯定會覺得似曾相識,但是其他程序員并不如此。首先,public 的訪問標志告
訴我們這個方法可以被任何程序訪問,這是它被調用的必要條件。其次,static 意味著沒有先創建類的實例也可以調用方
法——你所要做的就是用類名調用方法。
        HelloWorld.Main();
        但是,我不贊成在Main方法中執行這行代碼,遞歸會導致堆棧溢出。
        另一重要的方面是返回類型。對于方法Main,可選擇void (意味著根本就沒有返回值),或用int 為整型結果(應
用程序返回的錯誤級別)。因此,兩種可能的Main方法為:
        public static void Main()
        public static int Main()

        C++程序員會同樣知道后面我要提到的——可以傳給應用程序的命令行參數數組。如:
        public static void Main(string[] args)

        我現在并不想詳細地說明如何訪問參數,但我想事先給C++程序員一個警告:和C++相比,應用程序路徑不是這個
數組的一部分。僅僅那些參數包含在這個數組中。
        在對Main方法并不簡短的介紹之后,讓我們把注意力集中到唯一真正的代碼行——這行代碼在屏幕上顯示"Hello
Wold"。
         System.Console.WriteLine("Hello World");
        假如不是由于有了System,大家會馬上猜到WriteLine是Console 對象的一個靜態方法。那么System代表什么呢?
它是包含Console對象的名字空間(范圍),實際上并不是每次都在Console對象前加上名字空間的前綴,你可以象清單3.2所
示范的那樣,在應用程序中引入名字空間。

         清單3.2   在應用程序中引入名字空間
         1: using System;
         2:
         3: class HelloWorld
         4: {
         5:  public static void Main()
         6:  {
         7:   Console.WriteLine("Hello World");
         8:  }
         9: }

         所有你要做的就是給System名字空間加一個using指令。在這之后,不再需要規定名字空間,就可以使用它們的
方法和屬性了。NGWS 框架體系中有很多的名字空間,我只對巨大的名字空間池中的少數幾個對象進行探討。但在第八
章 "用C#寫組件"將介紹為你的對象創建自己的名字空間。

3.2  編譯應用程序
         由于NGWS  Runtime支持所有的編譯器(VB、C++和C#),你不必買一個單獨的開發工具用來把應用程序編譯成IL
(中間語言)。但是,如果你從沒有用過命令行編譯器編譯過應用程序(僅懂得編譯名,而沒有熟記), 它還是你的首要選
擇。
        打開命令提示符并切換到存 helloworld.cs 的目錄。敲入以下命令:
        csc helloworld.cs

        helloworld.cs 被編譯并鏈接成hellworld.exe。因為源碼沒有錯誤(那當然!),C#編譯器沒有出錯提示,在整個
編譯過程沒有絲毫停頓。如圖3.2所示。

         圖3.2  使用命令行編譯器 csc.exe 編譯應用程序

         現在你已經準備好運行第一個真正用C#編寫的應用程序。簡單地在命令行上敲入helloworld,輸出結果
為 "Hello World"。
        在繼續往下介紹之前, 我想稍為想象一下第一個應用程序和一個編譯器開關的使用:
        csc /out:hello.exe helloworld.cs
        這個開關告訴編譯器輸出文件命名為hello.exe。雖然這不是什么絕招,但它是這本書中用到的未來編譯器的基本
功。
3.3  輸入和輸出
         到目前為止,我僅僅演示了把簡單的常量字符串輸出到屏幕。盡管這本書只介紹了C#編程的概念而不介紹用戶接
口編程,但我需要讓你迅速學會簡單的屏幕輸入和輸出方法——相應于C的scanf 和 printf,或者C++的cin 和cout。我不
能提供VB相應的函數,因為屏幕訪問不是該核心語言的一部分。
         你只需要能夠讀用戶的輸入并提示一些信息給用戶。清單3.3 說明如何讀一個用戶請求的名字輸入,并顯示一條
已定制好的"Hello" 信息。

         Listing 3.3 從控制臺讀輸入信息

         1: using System;
         2:
         3: class InputOutput
         4: {
         5:  public static void Main()
         6:  {
         7:   Console.Write("Please enter your name: ");
         8:   string strName = Console.ReadLine();
         9:   Console.WriteLine("Hello " + strName);
         10:  }
         11: }

        第7行使用Console對象的一個新方法用于提示文本信息給用戶,它就是Write方法。它與WriteLine不同的地方在
于它輸出時不換行。我使用這種方法以便用戶可以在信息提示的同一行輸入名字。
        在用戶輸入他的名字后(并按回車鍵),ReadLine 方法讀入了一個字符串變量。名字字符串連接到常量字符
串"Hello",并用我們早已熟悉的WriteLine方法顯示出來(見圖3.2)。

        圖3.3  編譯和運行定制的Hello 應用程序

        你幾乎已學完了NGWS框架必要的輸入和輸出功能。但是,你還需要為用戶顯示多個值。為用戶寫一個格式串。清
單3.4展示一個例子。

        清單 3.4 使用不同的輸出方法

        1: using System;
        2:
        3: class InputOutput
        4: {
        5:  public static void Main()
        6:  {
        7:   Console.Write("Please enter your name: ");
        8:   string strName = Console.ReadLine();
        9:   Console.WriteLine("Hello {0}",strName);
        10:  }
        11: }

        第9行包含了使用格式串的Console.WriteLine語句。格式串例子如下:
        "Hello {0}"
        {0}代替WriteLine方法的參數表中緊隨格式串后的第一個變量。你可以用該技術格式化超過三個變量。
        Console.WriteLine("Hello {0} {1}, from {2}",
         strFirstname, strLastname, strCity);

        當然,并不僅限于只使用字符串變量。你可以使用任何類型,這些類型在后面的第四章 "C#類型"中有討論。

3.4 添加注釋
        當寫代碼時,你應為代碼寫注釋條文,解釋實現的內容、變更史等。盡管你注釋中提供的信息(如果有的話)是給
你寫的,但是你還是必須遵守寫C#注釋的方法。清單3.5 顯示采用的兩種不同的方式。

        清單3.5  給你的代碼添加注釋

         1: using System;
         2:
         3: class HelloWorld
         4: {
         5:  public static void Main()
         6:  {
         7:   // 這是單行注釋
         8:   /* 這種注釋
         9:   跨越多行 */
        10:   Console.WriteLine(/*"Hello World"*/);
        11:  }
        12: }

        "//" 符號用于單行注釋。你可以用"//"注釋當前所在行,或是跟在一個代碼語句的后面:
        int nMyVar = 10; // 胡說八道
        所有在"//"后面的被認為是一條注釋;所以,你可以同樣用它們來注釋一整行或一行源代碼的部分。這種注釋方
式同C++中介紹的相似。
        如果你的注釋跨越多行,必須使用"/* */"的字符組合。這種方式在C中有效。除了單行注釋外,這種方式在C++和
C#中還同樣有效。因C/C++和C#都使用這種多行注釋方式,所以它們也使用相同的終結符。請看下列代碼行:
        /* Console.WriteLine("Hello World"); */

        我使用"/* */"簡單地注釋一整行。現在我假定這一行是很長代碼的一部分,而且我決定要暫時禁用一個程序塊:
        /*
        ...
        /* Console.WriteLine("Hello World"); */
        ...
        */

        這個結構所存在的問題為: "Hello World"那一行后面的"*/"終止了始于第一行的"/*"的注釋,余下的代碼對編
譯器有效,你將看到一些有趣的出錯信息。至少 最后的"*/"被標志為歸屬錯誤。我只不過想提醒一下,讓你了解這種錯
誤。

3.5小結
       在這一章中,你創建、編譯并執行了第一個C#應用程序:著名的"Hello World"程序。我用這個短短的應用程序給
你介紹有關Main方法,它是一個應用程序的入口點,也是出口點。這個方法可以沒有返回值或返回一個整數錯誤級別。如
果你的應用程序用參數調用,你可以(但不必要)讀出并使用它們。
       在編譯和測試應用程序后,你學到了更多的由Console對象提供的有關輸入和輸出的方法。對于學習C#而言,它們
足以創建出有意義的控制臺例子,但用戶接口的大部分將是WFC、WinForms或者ASP+。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲欧美在线| 亚洲精品videossex少妇| 亚洲**2019国产| 欧美肥老妇视频| 国产精品久久一| 欧美野外猛男的大粗鳮| 国产欧美日韩专区发布| 日本欧美黄网站| 97在线观看免费高清| 欧美亚洲第一页| 亚洲一区亚洲二区| 久久精品视频在线播放| 久久黄色av网站| 国产精品黄页免费高清在线观看| 国产欧美婷婷中文| 国产精品夜色7777狼人| 日韩欧美精品在线观看| 欧美激情精品久久久久久黑人| 国产mv免费观看入口亚洲| 精品国产乱码久久久久久天美| 成人黄色在线免费| 精品爽片免费看久久| 亚洲乱码国产乱码精品精| 国产成人福利视频| 日韩视频免费看| 成人久久一区二区三区| 亚洲精品中文字幕有码专区| 欧美性xxxxxxxxx| 成人免费xxxxx在线观看| 欧美性猛交xxxx富婆| 欧美一级免费视频| 在线播放日韩欧美| 国产日韩在线精品av| 日韩欧美有码在线| 久久久久久午夜| 亚洲成色777777女色窝| 国产在线一区二区三区| 欧美日韩免费区域视频在线观看| 欧美激情一级二级| 91九色国产在线| 亚洲男人的天堂网站| 国产精品中文字幕在线| 国产精品日韩在线一区| 丝袜美腿亚洲一区二区| 精品露脸国产偷人在视频| 91在线视频一区| 夜夜嗨av色一区二区不卡| 亚洲欧洲午夜一线一品| 久久影视电视剧免费网站| 国产男女猛烈无遮挡91| 精品久久久中文| 97超级碰碰人国产在线观看| 精品欧美一区二区三区| 久久99久久久久久久噜噜| 日韩精品在线免费观看视频| 美女av一区二区三区| 国内偷自视频区视频综合| 久久久这里只有精品视频| 久久亚洲综合国产精品99麻豆精品福利| 亚洲免费视频一区二区| 伊人久久大香线蕉av一区二区| 亚洲国产精品一区二区三区| 日韩电视剧免费观看网站| 精品色蜜蜜精品视频在线观看| 亚洲天堂av高清| 久久视频国产精品免费视频在线| 亚洲va久久久噜噜噜久久天堂| 国产z一区二区三区| 欧美日韩国产黄| 成人免费观看49www在线观看| 久久久国产精品视频| 美日韩精品免费视频| 亚洲综合社区网| 精品视频在线观看日韩| 97视频在线看| 亚洲一区二区三区四区视频| 亚洲欧美国产日韩中文字幕| 亚洲а∨天堂久久精品喷水| 亚洲日韩中文字幕在线播放| 亚洲专区在线视频| 奇门遁甲1982国语版免费观看高清| 国产69精品久久久久9| 欧美大片免费观看在线观看网站推荐| 国产精品国产三级国产专播精品人| 亚洲国产成人久久综合| 在线观看国产精品淫| 97在线看免费观看视频在线观看| 亚洲激情电影中文字幕| 久久久久久久久久久91| 亚洲激情电影中文字幕| 亚洲网址你懂得| 韩国三级日本三级少妇99| 欧美wwwxxxx| 亚洲网站在线看| 久久精品欧美视频| 久久影院资源站| 日韩黄色av网站| 日韩精品视频中文在线观看| 欧美电影免费在线观看| 国产精品va在线| 一区二区三区精品99久久| 国产91成人在在线播放| 国产午夜精品理论片a级探花| 国产丝袜一区二区| 成人午夜在线观看| www.久久草.com| 亚洲成人免费网站| 日韩美女视频免费在线观看| 欧美性感美女h网站在线观看免费| 在线成人激情视频| 成人av在线亚洲| 亚洲国产精品久久91精品| 国产精品99一区| 亚洲性生活视频| 久久久久久久影视| 欧美高清视频在线| 欧美日韩视频在线| 成人免费视频在线观看超级碰| 精品偷拍各种wc美女嘘嘘| 国产精品成人一区二区三区吃奶| 精品日韩视频在线观看| 国产在线视频91| 久久91超碰青草是什么| 国产精品观看在线亚洲人成网| 91精品久久久久久| 日韩有码片在线观看| 日韩av大片免费看| 成人a在线观看| 高清欧美电影在线| 在线视频日本亚洲性| 国产精品一区久久久| 亚洲国产精品嫩草影院久久| 91国语精品自产拍在线观看性色| 日韩av片永久免费网站| 91av成人在线| 98精品国产高清在线xxxx天堂| 国产不卡一区二区在线播放| 色综合色综合网色综合| 亚洲欧美色婷婷| 亚洲欧洲美洲在线综合| 亚洲精品国产福利| 国产精品久久久久免费a∨大胸| 日韩av综合网站| 欧美一级bbbbb性bbbb喷潮片| 福利视频导航一区| 欧美色欧美亚洲高清在线视频| 国产精品一区二区电影| 国产91成人video| 色悠久久久久综合先锋影音下载| 精品国内自产拍在线观看| 中文字幕久热精品在线视频| 亚洲天堂av在线免费观看| 欧美不卡视频一区发布| 国产在线精品一区免费香蕉| 久久亚洲影音av资源网| 日韩美女视频免费在线观看| 在线成人一区二区| 久热精品视频在线观看一区| 成人免费高清完整版在线观看| 欧美一级大片在线免费观看| 在线日韩第一页| 亚洲精品久久7777777| 91日本在线观看| 久久影院资源网|