Chapter 1 - 概論eeweb.hust.edu.tw/info/files/news/5/Csharp/CH01...E lectrical ngineeringE Chapter...

66
lectrical ngineering E E Chapter 1 - 概論 1-1 物件導向的程式設計 1-2 相關程式語言簡介 1-3 .NET Framewor k 1-4 Visual Studio 共用整合式開發環境的介紹 1-5 程式的編譯與執行

Transcript of Chapter 1 - 概論eeweb.hust.edu.tw/info/files/news/5/Csharp/CH01...E lectrical ngineeringE Chapter...

  • lectrical ngineeringE E

    Chapter 1 - 概 論

    1-1 物件導向的程式設計1-2 相關程式語言簡介1-3 .NET Framewor k1-4 Visual Studio

    共用整合式開發環境的介紹

    1-5 程式的編譯與執行

  • lectrical ngineeringE E

    物件導向的程式設計 (Object Oriented Programming,OOP) 是人們在程式語言中逐漸累積的成果,這個觀念在1970年代就已提出,只是當時時機未到。

    現在,OOP則已是所有程式語言的標準配備,為了說明OOP大行其道的原因,筆者將程式語言的發展分為三個時期,分別是:非程序導向、程序導向及物件導向。

    說明如下:

    1 - 1 物件導向的程式設計

  • lectrical ngineeringE E

    非程序導向

    早期的程式語言,並沒有內儲副程式 (又稱程式庫)。當我們開發新的應用程式時,如果某一功能與之前寫過的程式相

    近,則會將此段已完成的程式整段複製,並稍加修改即可重

    新加以利用。

    但是,這些程式的分身包括本尊,自從複製出來以後就開始 以各自的方式發展,結果造成各版本的差異越來越大,這些 程式很難弄清楚誰複製誰,彼此之間也難再共用某些程式

    碼,當遇到錯誤,或欲新增功能時,更是很難逐一修改所有 的程式。

  • lectrical ngineeringE E

    程序導向

    為了解決以上程式共用問題,各編譯器廠商便開始提供一些

    大家常用的函式,比較有規模的軟體設計公司會將一些常用

    的函式集中在一個函式庫,旗下的軟體產品一律呼叫這些標

    準的函式庫,而不是從函式庫複製出來修改,此即為程序導

    向的程式設計。

    程序導向與非程序導向相比,的確解決了程式共用的問題,

    但還是有些問題不夠順暢。例如:有些函式庫會隨著需求增

    加而有不同版本,當某些函式功能增加時,只好重新取函式

    庫的函式加以修改並賦與新的名稱。如此累積,函式庫裡的

    函式有的功能相近、或是前後版本不同、又或是函式裏的變

    數來源不明造成使用者的混亂。為了突破以上瓶頸,於是有

    物件導向的發展,以解決以上程序導向的不足。

  • lectrical ngineeringE E

    物件導向

    程序導向中的函式,存有許多解決問題的函式 (在目前的物件導向中另稱為方法),它是偏重在方法的解決。但是,人類的生活方式不僅是單純的行為描述,更存在著屬性的記載。例一:描述一個人時:「他的名字是洪國勝,身高 172、體重70,具有滾進、游泳及跑步的能力。」例二:描述一輛車子時:「名字是SENTRA,排氣量是 1600 c.c.,耗油量是每公里 0.1 公升且具有每小時 120公里的移動能

    力。」以上人與車即稱為“物件";名字、身高、排氣量則稱為“ 屬

    性";而滾進、游泳、跑步、移動則稱為“ 方法"。基於物件導向的新觀念,程式開發工具製訂一種新的型別,稱為類別。

  • lectrical ngineeringE E

    物件導向

    每一類別都有屬於自己的方法,也就是將眾多的函式依照類別

    存放,如此可解決目前日益龐大的函式命名與函式取用的困

    擾。

    例如:在程序導向時,關於開門的函式即有電梯開門、汽車開

    門等數種方法。而在物件導向時,開門這個方法是附在相對應

    的類別裏。在電梯類別有電梯的開門、在汽車類別有汽車的開

    門,所有方法名稱都叫“開門"。撰寫程式時:「電梯.開門」、「汽車.開門」 (物件與方法、屬性之間以點(.)運算子連結)。由上例可得知:物件導向:可簡化程式的撰寫、可減少程式出

    錯的機會。而程序導向:因所有的函式都集中,就有可能用錯

    方法。(例如,用開電梯門的方法去開汽車的門,結果當然是

    錯的。)

  • lectrical ngineeringE E

    類別的變數即稱為物件。物件稱為類別的實現或類別的樣例

    化(Instance)。也就是說,類別就像是一個酒瓶或機器人的模型,在這些模型裏面已設計好他所具備的屬性與方法,當

    需要酒瓶或機器人時,只要依照這些模型樣例一個或多個酒

    瓶或機器人即可。其次,物件導向提出了三個觀念,分別是

    物件的封裝 (Encapsulation) 、繼承 (Inheritance) 及多型(Polymorphism),以解決程序導向的不足。

    物件導向

  • lectrical ngineeringE E

    物件導向 - 封裝(Encapsulation)

    軟體科技的開發是起步較晚的領域。在汽車、電視及收音機等產品上這些產品皆很重視物件的封裝。

    例如,以電視而言,我們發現內部有許多零件與開關,對於 電視製造商而言,它們使用機殼將這些零件與開關「封裝」 起來,才能避免使用者任意破壞,只留下部份開關與螢幕讓 使用者欣賞節目。

    對於類別的規劃應重視所有方法、欄位及屬性封裝,使得這些成員有不同的封裝等級,以避免主程式與類別庫之間的干擾。例如:電視的一些開關與旋鈕,有些是開放給一般的使用者調整,有的是讓維修工程師調整,有些則永遠不讓任何人調整。

  • lectrical ngineeringE E

    物件導向 - 繼承(Inheritance)

    任何新產品的開發不是無中生有,而是從舊有的產品中繼承某些特性,再加入新的零件或修改部份零件而成一項新的產品。例如:SENTRA180 正是繼承 NEW SENTRA 而來,只是排氣量提高了、內裝豪華,但是原來的輪胎、方向盤及座椅還是用原來 NEW SENTRA 的東西,這就是繼承的道理,使得新產品的開發得以縮短時程。軟體的開發何嘗不應如此?

    繼承的另一優點是:同一方法得以讓數個新舊版本同時存在。因為當有新產品時,不可能同時讓新舊客戶同時更新,所以必須讓這些不同的版本同時存在以滿足不同的產品需求。

  • lectrical ngineeringE E

    物件導向 - 多形(Polymorphism)

    多形 (Polymorphism) 有些譯成「同名譯式」,它的原文是希臘文,意指:一種樣式有多種表現的方式。

    例如:你有一個僕人專門幫你開門,那麼不論這門是內推, 外拉或向旁邊推,你都是下同一指令“ 開門",然後僕人即 會依照門的結構而完成開門的動作。

    物件導向的程式設計即是發揚此理念,讓程式設計師於程式

    設計階段使用相同的指令,而編譯器能於執行階段依據不同

    的需求而執行不同的程式片段,此即為多型。

    C# 物件導向的多型表現,分別是多載 (Overloading) 、改寫(Overriding) 及介面 (Interface)。

  • lectrical ngineeringE E

    1 - 2 相關程式語言簡介

    目前常見的高階程式語言有:

    Basic QBasic Visual Basic FORTRANCOBOLPascal/DelphiC/C++Java

    本節將簡單介紹以上語言。

  • lectrical ngineeringE E

    1 - 2 Basic

    Basic 是 Beginer’s All Purpose Symbolic Instruction Code 的縮寫。於1964 年發展出來的高階語言,意思是一種多用途 (不限商用或工程用) 的初學者符號式指令語言,其特徵是有行號、易學及直譯式的執行方式。

    什麼是直譯式的執行方式?就是程式一面翻譯成機器碼,一

    面執行。(優點:使用的親和性高)。

    什麼是使用親和性高?因為程式在翻譯時,遇有錯誤就告訴

    使用者,但編譯式的程式語言,則要等全部的程式無誤後才

    能有執行結果(優點:執行效率較高)。

    除了 Basic 外,幾乎所有的程式語言都是先完成編譯再執行。早期的 Basic 是由倚天公司的 ETBasic 提供處理中文的能力。

  • lectrical ngineeringE E

    1 - 2 QBasic

    QBasic是Basic 的後續版本。因為早期的 Basic 結構化指令並不完善,故寫起程式來,都

    是 Goto 來 Goto去,後來的人稱這一類的程式像一碗通心 麵。

    QBasic 和 Basic 的差異在於原來的 Basic 加上一些結構化的 While...Wend 及Do...Loop 等指令,使得程式符合結構化的要求;同時 QBasic增加整合的編輯環境,可在相同環境編輯、編譯及執行程式。

  • lectrical ngineeringE E

    1 - 2 Visual Basic

    QBasic 的優點是解決結構化的問題,但一切程式都要從零開始,所以 1990 年代有 Visual Basic的出現。Visual Basic 在原結構化條件下增加物件導向的觀念及視覺化元件,簡單說就是有很多現成的元件可供使用。就像現代

    人蓋房子,不用在現場拌水泥與製作窗戶,只要利用現成的

    水泥、門窗及衛浴等元件就可以輕鬆的完成高樓大廈,當然

    程式設計者也可以作元件供自己或他人使用。

    Visual Basic 同時提供編譯程式給使用者,待使用者於解譯無誤後使用,如此可以提昇程式的執行速度。

    Visual Basic 的優點是容錯能力比較強,此特性必然造成編譯與執行的負擔,因而減緩執行速度。

  • lectrical ngineeringE E

    1 - 2 FORTRAN

    FORTRAN (FORmula TRANslation) 於 1995 年發表的程式語言。

    它著重在工程的運算,民國 70 年代的大學工科學生大多使用這種語言作為程式設計的工具,當時微電腦並不普及 (故沒有鍵盤),所有的指令要在卡片 (此種卡片與聯考作答的卡片類似) 打孔,再交由計算機中心的小姐放入電腦主機執行,執行結果統一列印於報表紙,再由小姐每天二至三次放

    在外面各班的信箱。

    隨著週邊設備的複雜化,FORTRAN此種語言已不符時代潮流,現已幾乎消聲匿跡。

  • lectrical ngineeringE E

    1 - 2 COBOL

    COBOL (Common Businese Oriented Language) 於1959 年所發表的商用程式語言。民國七、八十年間商科學生學習程式語言所使用的工

    具。其變數名稱長,所寫出的程式也很冗長,使用這種

    語言必須有極快的打字速度。現在除了一些銀行還在使

    用此種語言外,也是漸漸走入歷史。

  • lectrical ngineeringE E

    1 - 2 Pascal/Delphi

    Pascal 於 1968 年,由 Niklaus Wirth 所研發及發表的程式語言。1984 年個人電腦逐漸流行,Borland 公司推出 PC 上的Pascal 編譯器,其名稱為 Turbo Pascal,當時是 Pascal 最紅的年代。隨著微軟視窗軟體的竄起,Turbo Pascal 的最後版本是Borland Pascal 7.01 。1995 年,微軟的VB大紅,Borland 公司為扭轉 Pascal 的頹勢,所以另外開發 Delphi 1.0,它是繼承 Pascal 語法並加入物件導向及視覺化輸出入元件的一種快速應用程式開發工具(Rapid Application Development,簡稱 RAD),Borland 希望此軟體能與微軟的 VB 一較長短。

  • lectrical ngineeringE E

    1 - 2 C 語言

    C 語言於1972 年所發表。Basic 、FORTRAN 及 COBOL 等程式語言其優點:是具有高階語言的親和性;而缺點:則是執行效率比組合語言慢。

    故貝爾實驗室改進 Pascal 的語法,使它更簡捷外,更加入指標型態直接存取記憶體而提昇執行效率。

    雖執行效率仍較組合語言慢,但具有高階語言的親和性,以 使它逐漸取代組合語言。(例:Unix 作業系統絕大部份是由

    C 寫成,也是第一個利用高階語言撰寫而成的作業系統。)

  • lectrical ngineeringE E

    1 - 2 C++

    C++ 於 1980 年由貝爾實驗室發表。C++繼承 C 語言的編譯程式 (所謂繼承就是新創的語言要能讓原有的程式都順利執行),並加上物件導向的設計觀念 - 類別與物件。

  • lectrical ngineeringE E

    1 - 2 Microsoft Visual C++

    Microsoft Visual C++ 是微軟公司針對 C++語言所發展的編譯程式。

    它從原有的 C++增加以下工具:MFC (Microsoft Foundation Class) OLE (Object Linking and Embedding) ODBC (Open DataBase Connectivity) DAO (Data Access Object) ActiveX COM (Component Object Model) 等工具。

  • lectrical ngineeringE E

    1 - 2 Borland C++ Builder

    C++ Builder 是 Borland 公司針對 C++所發展的快速應用程式開發工具(Rapid Application Development,RAD)。什麼是快速應用程式開發工具?

    因為 Borland 將原有的 C++加入許多視覺化元件 (Visual Component Library,VCL),微軟的 Visual Basic 則稱為控制

    項 (Control),但不管是 Component 或Control,它們都是類 別的封裝,這些現成的元件使得程式設計不再是從零開始, 而是從現有的類別出發,就像積體電路的設計,也是從現有 的 IC 組合更多更大的電路。

  • lectrical ngineeringE E

    1 - 2 Java

    Java 是完全以物件導向為基礎所開發的程式語言,其最大特色是可跨平台的編譯程式。(跨平台是指使用 Java 編寫的程式可直接在不同的作業系統執行)

    Java 編譯程式有:Sun的JDK、Microsoft的J#、Borland 的JBuilder。Java 與C++與 Delphi不同在於:雖C++與 Delphi是稱為物件導向的程式語言,卻都是在程序導向的架構下新增物件導

    向的觀念,而為了維持舊有程式的相容性,故保留了原有的

    函式庫。此種向下相容的特性,其執行效率較慢。

  • lectrical ngineeringE E

    1 - 3 .NET Framework

    .NET Framework 的目標是要讓所有的程式語言有相同的執行環境及共用基礎類別庫。

    下圖為.NET Framework簡要架構:

  • lectrical ngineeringE E

    共通語言規範 (Common Language Specification)

    目前支援 .NET Framework 的程式語言有:C# 、VB 、C++、Pascal、Cobol 、Perl 、Fortran 及 J# 等

    約 25 種語言。程式開發人員可以使用上述程式語言撰寫自己的應用程式,

    但必須遵守共通語言規範。

    在共通語言的規範下,所有遵守此規範的程式語言都可以轉

    換為與平台無關的中介語言。

    為了要遵守共通語言規範,每個語言都必須有所調整。

    例如:Visual Basic 的變數宣告與使用方式即有很大的改變。

  • lectrical ngineeringE E

    基礎類別庫

    物件導向的程式設計將所有的函式分類存放,形成所謂的類

    別庫。但是所有的程式語言都必須撰寫自己的類別庫而造成

    軟體開發及使用者的負擔。

    而.NET Framework 統一了所有語言的類別庫,也減輕程式設計師的負擔。

  • lectrical ngineeringE E

    共同的語言執行環境

    .NET Framework 提供類似 Java 的虛擬機器。其共同的語言執行環境如

    右圖所示:

  • lectrical ngineeringE E

    Portable Executable (PE) File

    是中介語言 (Intermediate Language,IL)只要是支援.NET Framework 的語言,都有屬於自己的編譯器翻譯成一種與機器平台無關的可攜式執行檔

    (Portable Executable File),其附屬檔名是 EXE 或DLL 。此種檔案包含 Intermediate Language Code 與Metadata。

  • lectrical ngineeringE E

    Just In Time Compiler

    Portable Executable File 只是一個與機器無關的中介語言 (Intermediate Language,IL)且不可執行。在機器平台上第一次執行時,會由 Just In Time (JIT) 編譯器將中介語言編譯成該機器平台的原生碼(Native Code),此運作方式即為跨平台之實現方式。

  • lectrical ngineeringE E

    1 - 4 Visual Studio 共用整合式開發環境的介紹

    Visual Studio 建立一個適合所有語言的共用整合式開發環境,此環境可以使用單一視窗來處理大多數的開發工作。

    在整合式開發環境裡:可建立、編輯、管理檔案與專案,以視覺化的方式設計使用者介面並且編譯、除錯與執行該應用程式。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    功能表:

    工具列:將功能表中若干常用功能做成工具圖項,方便使用者點選,稱為

    工具列。下圖滑鼠指標所指的圖項,為偵錯程式的開始圖項。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    方案總管

    右圖顯示:專案、對應的檔案

    與目錄案、對應的檔案與目

    錄。

    在Studio中:方案(Solution) 是由一至數個專案(Project)組成。而一個專案則可能由一至

    數個檔案組成。這些檔案可以

    是表單檔、原始程式檔、類

    別、參考或資料連接等檔案。

    使用者可在此按二下任意檔

    案,取得檔案內容。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    工具箱

    提供各項輸出入元件的地方。使用者可由工具箱中選擇欲使用的元件拖曳至表單上,表單上即會自動產生該項元件。

    工具箱快顯功能表

    為了節省空間與記憶體,有些控制項並沒有一起顯示,使用者可選工具箱快顯功能表的「選擇項目」並選擇所需控制項或元件。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    伺服器總管

    可以幫助程式設計人員連接到

    伺服器,檢視及操作他們的資

    源。

    例如右圖中,新建立了一個資

    料庫連線,來協助資料庫程式

    的開發。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    表單設計頁籤

    當新增Windows 應用程式時,便會產生一個表單設計頁籤,

    程式設計者可利用此表單作基

    礎,並放置各項輸出入控制項

    或元件,以所見即所得的方

    式,快速建立使用者介面。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    程式編輯頁籤

    按一下功能表的 檢視/程式碼"選項或 功能鍵,即可進

    入程式編輯頁籤。如下圖所示,程式設計者可在此編輯所要

    鍵入的程式。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    屬性編輯視窗

    可觀察或設定所選控制項的所有屬性及事件。

    下圖左是屬性編輯視窗的屬性模式,下圖右是按一下 鈕

    後的事件模式,若欲再切換回屬性模式可按一下 鈕。

  • lectrical ngineeringE E

    共用整合式開發環境介紹

    輸出窗格

    在編譯專案時可輸出一些錯誤的訊息。

  • lectrical ngineeringE E

    1 - 5 程式的編譯與執行

    本書的程式可分為兩類:

    第一種是在 DOS 視窗下執行的主控台應用程式第二種是在 Windows 平台中執行的 Windows 應用程式。

    因這兩類的應用程式的編譯與執行方式不同,故將分

    別介紹。

  • lectrical ngineeringE E

    主控台應用程式 (Console Application)

    是一種 DOS 視窗的應用程式。不論是程式的執行或輸入與輸出的介面,都必須在 DOS 視窗下進行。

    優點:程式輕巧、執行速度快。

    缺點:使用者介面過於呆板單調、不具親和力。

    以下將以簡單程式範例來說明主控台應用程式的設計步驟。

  • lectrical ngineeringE E

    主控台應用程式 - 範例 1-5a

    請以主控台應用程式,將使用者輸入之值平方後輸出。

    操作步驟如下:

    壹、開新專案

    1. 新增專案視窗(路徑:功能表/檔案/新增/專案,右下圖所示)

  • lectrical ngineeringE E

    主控台應用程式 - 範例 1-5a

    2. 專案類型:選擇「Windows」、範本:選取「主控台應用程式」、

    名稱鍵入:「e1-5a」、 位置點選:「C:\CsBook\ch01」 。3. 確定後即完成新專案的建立。此時 C# 會建立一個包含基本程式框架的 Class.cs 檔案,

    畫面如下圖所示。

  • lectrical ngineeringE E

    主控台應用程式 - 範例 1-5a

    貳、撰寫程式

    1. 將以下程式碼鍵入 Class1.cs 的 Main 方法中。如下圖:字母大小寫應一致(在C# 的大小寫視為不同),且每一敘述均應以分號 (;) 作為結束,而雙斜線 (//) 後的程式(或字元)視為註解,編譯器不予處理。

  • lectrical ngineeringE E

    主控台應用程式 - 範例 1-5a

    2. 程式若有任何編譯錯誤,皆可於錯誤清單呈現。如下圖所示:

    ※ 在錯誤清單上按兩下即可至程式編輯視窗排除

  • lectrical ngineeringE E

    主控台應用程式 - 範例 1-5a

    參、偵錯程式

    路徑:功能表/偵錯/開始偵錯或工具列/ 開始偵錯

    若程式編譯無誤便可得DOS 執行視窗(下圖左) ,此時依螢幕訊息輸入一整數 (本例輸入 4 ),按 鍵後程式即可輸出其平方值,執行結果畫面(下圖右)。

  • lectrical ngineeringE E

    主控台應用程式 - 範例 1-5a

    參、偵錯程式

    若程式有錯誤,則在編譯時會出現錯誤的訊息視窗。

    依螢幕訊息選擇「否」,停止程式編譯(下圖右),並查看「錯誤清單」窗格中的訊息。

    在本例中的第 15 行程式碼,console 未大寫開頭,故顯示 出該項訊息(下圖左)。

  • lectrical ngineeringE E

    主控台應用程式 - 範例 1-5a

    肆、執行程式

    路徑:功能表/偵錯/啟動但不偵錯。即可觀察執行結

    果。

    伍、存檔

    路徑:功能表/檔案/全部儲存。即可將專案中所有修改

    過的檔案全部儲存。

  • lectrical ngineeringE E

    程式列印 - 範例 1-5a

    本例 Program.cs 全部程式列印如下。

  • lectrical ngineeringE E

    Windows 應用程式 (Windows Application)

    因 Windows 作業系統的盛行,其應用程式已成為程式開發的主流。此類應用程式具有豐富及友善的圖形介面。也因此它增加了

    程式的複雜度且加重程式設計者的負擔。

    但是目前大部分的應用程式開發工具皆具有許多輸出入控制項供

    程式設計者使用,Visual Studio 也是。程式設計者可利用這種開發工具,如同堆積木的方式,快速建構程式。此種開發工具的

    程式設計步驟如下:

    1 . 安排輸出入控制項於表單適當位置。2 . 設定各控制項的屬性初值。3 . 撰寫各事件處理函式。4 . 執行程式。5 . 除錯。6 . 存檔。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    操作步驟如下:

    壹、開新專案

    1. 新增專案視窗(路徑:功能表/檔案/新增/專案,右下圖所示)

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    2. 專案類型:選擇「Windows」、範本:選取「 Windows應用程式」、名稱鍵入:「e1-5a」、 位置點選:「C:\CsBook\ch01」 。

    3. 確定後即完成新專案的建立。此時 C# 會建立一空白表單如下圖所示。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    貳、調整表單大小

    1. 用滑鼠左鍵拖曳表單邊緣來改變表單大小(如下圖左),並觀察Form1 物件的 Size 屬性變化(如下圖右)。

    2. 於屬性視窗重設 Size 屬性的大小,並觀察表單變化。3. 觀察其 Name 與Text 屬性值。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    參、輸入提示標籤盒

    使其顯示「 請輸入一整數」,其功能為提示使用者該輸入什

    麼東西給電腦處理。

    1. 點選表單左邊的工具箱標籤,會彈出視窗(下圖左)。2. 於 Label 圖項按二下,Label 元件即自動出現於表單上,其 Name和 Text 屬性預設為 label1。3. 調整 Label1 位置。直接拖曳 label1 至適當位置(下圖右)。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    參、輸入提示標籤盒

    4. 重設屬性 Text 為“請輸入一整數"(下圖左)。此時表單上 label1 物件顯示的文字亦會改變(下圖右)。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    肆、輸出提示標籤盒

    此標籤盒顯示內容為“ 其平方值",其功能為讓使用者電腦

    輸出的內容為何。

    1. 於工具箱按二下 Label 圖項。2. 拖曳至適當位置。3. 屬性 Text 重設為"其平方值"。

    伍、安排輸入文書盒

    此功能是為讓使用者輸入數值。

    1. 於工具箱按二下 TextBox 圖項。2. 拖曳至適當位置。3. 屬性 Name 預設值為 textBox1。4. 屬性 Text 預設值為空白,本例重設為 5。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    陸、安排輸出標籤

    此標籤功能為輸出平方值。

    1. 於工具箱按二下 Label 圖項。2. 屬性 Name 預設為 Label 3。3. 屬性 Text 預設為 Label 3,請清除為空白。

    柒、安排“ 開始" 按鈕

    此按鈕的功能為執行程式的依據。

    1. 於工具箱按二下 Button 圖項。2. 屬性 Name 預設為 button1,請重設為 btnStart。3. 屬性 Text 預設為 button1,請重設為"開始"。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    捌、安排“ 結束" 按鈕

    此按鈕的功能為結束程式的依據。

    1.於工具箱按二下 Button 圖項。2. 屬性 Name 重設為 btnClose。3. 屬性 Text 重設為“結束"。4. 完成以上設定,表單畫面如下圖。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    玖、如何一起重設若干元件的某些屬性?

    為求畫面一致,可圈選若干元件而一起設定共通的屬性,如

    Font 及 Size 屬性,免除個別設定的麻煩。1. 使用滑鼠拖曳圈選若干元件 (可按住 Ctrl 鍵再點選若干元件),不含表單共有六個元件(如下圖) 。2. 在屬性視窗重設一些共同屬性,如 Font 、Size 及 Text 等,下圖已重設字型大小為12 。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    拾、

    本例於“開始"按鈕按一下時,應執行輸入、處理及輸

    出。

    撰寫程式碼如下圖。英文字母的大小寫應一致 (在C# 中的大小寫視為不同) 且每一敘述均應以分號 (;) 作為結束,而雙斜線 (//) 後的字元視為註解。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    Visual Studio 具有很強的程式編輯輔助功能。所以,當鍵入方法或物件時,均能感應出適當的提示語。

    例如,下圖是輸入“textboxl"時,所出現的屬性與方法。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    拾壹、撰寫“ 結束" 處理程序

    1. 在表單的“結束"按鈕按二下或在屬性視窗點選鈕,切換至事件頁,並於 Click 事件標題按二下,可得空白的 btnClose_Click 事件骨架。2. 當按一下“ 結束"按鈕時,代表要結束程式,所以鍵入如下程式碼,請留意大小寫字母視為不同,且以分號 (; ) 做為一個敘述的結束。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    拾貳、執行程式

    1. 按一下工具列“ 開始偵錯" 圖項鈕 或功能表/ 偵錯/開始偵錯,均可偵錯並執行程式。若程式編譯無誤便

    可得下圖左視窗。

    按一下表單的"開始" 按鈕(如下圖右),已完成轉換工作。

  • lectrical ngineeringE E

    Windows 應用程式 - 範例 1-5a

    拾貳、執行程式

    2. 若程式編譯有則會出現錯誤訊息視窗(如下圖左),請按“否"停止程式編譯,並查看工作清單窗格中的訊息(如下圖右) ,進行除錯。

    3. 按一下“ 結束“ 按鈕,或功能表/偵錯/停止偵錯,皆可結束程式。

    拾參、存檔

    路徑:功能表/檔案/全部儲存,即完成存檔動作。

  • lectrical ngineeringE E

    程式列印 - 範例 1-5a

    只有斜體字部分是使用者鍵入,其餘皆是 C# 自動完成,這是 Visual Studio 整合式開發環境的特色之一,程式設計者應專注於程式的演算邏輯而非環境的設定。

  • lectrical ngineeringE E

  • lectrical ngineeringE E

    參考書目及資料來源

    參考書目

    VisualC#2008程式設計範例教本 – 作者:洪國勝

    Chapter 1 - 概 論1 - 1 物件導向的程式設計非程序導向程序導向物件導向物件導向物件導向物件導向 - 封裝(Encapsulation)物件導向 - 繼承(Inheritance) 物件導向 - 多形(Polymorphism) 1 - 2 相關程式語言簡介1 - 2 Basic1 - 2 QBasic1 - 2 Visual Basic1 - 2 FORTRAN1 - 2 COBOL1 - 2 Pascal/Delphi1 - 2 C 語言1 - 2 C++1 - 2 Microsoft Visual C++1 - 2 Borland C++ Builder1 - 2 Java1 - 3 .NET Framework共通語言規範� (Common Language Specification)基礎類別庫共同的語言執行環境Portable Executable (PE) FileJust In Time Compiler1 - 4 Visual Studio �共用整合式開發環境的介紹共用整合式開發環境介紹共用整合式開發環境介紹共用整合式開發環境介紹共用整合式開發環境介紹共用整合式開發環境介紹共用整合式開發環境介紹共用整合式開發環境介紹共用整合式開發環境介紹共用整合式開發環境介紹1 - 5 程式的編譯與執行主控台應用程式 (Console Application)主控台應用程式 - 範例 1-5a主控台應用程式 - 範例 1-5a主控台應用程式 - 範例 1-5a主控台應用程式 - 範例 1-5a主控台應用程式 - 範例 1-5a主控台應用程式 - 範例 1-5a主控台應用程式 - 範例 1-5a程式列印 - 範例 1-5aWindows 應用程式 �(Windows Application)Windows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5aWindows 應用程式 - 範例 1-5a程式列印 - 範例 1-5a投影片編號 65參考書目及資料來源