VC#編繹分為兩部分一個是從程式碼到IL(中繼語言)
二個是從中繼語言到機器語言(JIT編繹器)
編繹參數
CSC.EXE把VC#程式碼騙譯成IL檔案
@ 指定回應檔
/debug 發送調試資訊
/debug+ 就會建立一個PDB檔案把調試資訊寫入檔案
/debug-不會建立PDB檔案,預設選項
/doc 把處理的文檔注釋為XML檔案
/out 批定輸出檔案
/reference 從包含集合的檔案中匯入中繼資料
/target 指定輸出檔案的格式
/target:exe 建立一個可執行(.exe)的控制台應用程式
/target:libarary 建立一個程式碼程式庫DLL
/target:winexe 建立一個WINDOWS程式(.exe)
/target:modeule建立一個模組(DLL)
實值型別
C#語言資料類型主要分為兩類:實值型別和參考型別
實值型別分成三類:簡單類型,結構類型,枚舉類型
簡單類型分為布爾類型(true和false),資料類型分為整型(sbyte,byte,short,ushort,int,uint,long,ulong,char),浮點(float,double),decimal主要用於金融貨幣等對精度要求較的電腦環境
結構類型關鍵字:struct
枚舉類型關鍵字:enum
引用資料類型:
C#提供以下幾種參考型別:
對象類開
類類型
介面
代表元
字串類型
數組
字串類型:字串類直接派生自對象,且客觀存在是被密封的
定義數給 new 類型[,,,,]
裝箱和拆箱
就是使得C#類型系統中,任何實值型別\參考型別和對象(object)類型之間都可以進行轉換(綁定串連),這樣就可以把任何類型都看成是OBject類型.
裝箱:就是任何一個實值型別隱式地轉換成一個物件類型;拆箱正好相反就是對象轉換成相應的資料類型
變數和常量
C#中,變數命名與C++不同的是,允許在變數名前加首碼"@",這種情況下就可以使用首碼"@",加上關鍵字作為變數的名稱,這主要是為了與其它語言進行互動時不衝突,但單獨用使C#進行編程時,不推薦使用"@",作為變數名的一部分.
常量就是固定不變的量,從資料類型的角度看,常量的類型可以是任何一種實值型別或參考型別.
流程式控制制
與C/C++不同的事if後面的運算式就能是BOOL型運算式.
swithch中沒有break.C#會報錯
迴圈中C#中引入了foreach
條件編譯
C#中有兩種方法進行編繹的方法:預先處理用法和條件屬性
第3章 物件導向的C#
類與對象
建構函式和解構函式
方法
域和屬性
代表
繼承
類:C#的類是一種包括資料成員,函數成員和其他類型的資料結構,其中,資料成員可以是常量或域。函數成員可以是方法、屬性、索引器、事件、操作符、執行個體構建器、靜態構建器和析構器
限制修飾符
public 可以被任意存取。不限制該類的訪問
protected 只可以被所在類和其派生的子類進行訪問
internal 只有其所在類可以訪問
protected internal 惟一的一種組合限制修飾,它只可以由其所在類和這些類所派生的子類訪問
private 只有包含在.net中的應用程式或是庫才能訪問
abstract 用來修飾抽象類別,表示該類只難作為其類被用於繼承,而不能進行對象執行個體化。抽象類別可以包含抽象的成員但不是必須的,abstract不能和new同時用
對象類的執行個體化
this 關鍵字
只有在執行個體方法中才用this來引用變數,this關鍵字引用當前對象執行個體的成員。在執行個體方法體內可以省略this
建構函式用於執行類的執行個體初始化,每個類都有建構函式。在訪問類的方法、屬性或是任何其它東西之前,和一條執行的語句是包含有相應類的建構函式,甚至自己不寫一個建構函式,也會有一個預設的建構函式提供。
解構函式:在類的執行個體超出範圍的時候,經常希望能夠叫回它所佔用的儲存空間,解構函式正是這個作用
方法
修飾方法和關鍵字有:
new public protected internal private static virtual sealed override adbstract extern
63
方法參數
傳 值 :傳值參當無需客外的修飾符
傳址:傳址參數需要修飾符ref
傳出參數:輸出參數需要修飾符out
數組參數:數組參數需要修飾符params
需要注意的是重寫(new)方法和覆蓋(override)方法的不同,從本質上講重寫法是編譯時間綁定,而覆蓋方法是運行時綁定。紫外線方法不可以是靜態方法,也變是說不可以用static和virual同修飾一人方法,這由它的運行時類型辨析所決定。override心須和virtual配合使用,當然不能和static同時使用.
外部方法
C#引入了extern修飾符來表示外部方法,外部方法以外的語言實現的方法,比如win32 API函數
域和屬性
靜態域和非靜態域,其中靜態域的聲明是用static其他的域都是非靜域,如果將一個類聲明為靜態域,當這個類的第一個執行個體建立時,域就被初始化了,以後再進行類的初始化時,就不再對其進行初始化。
唯讀域,C#引入了readonly修飾符來表示唯讀域,只有在域的定義和它所屬類的建構函式中可以進行修改。
繼承
83
C#進階編程
命名空間的聲明使作關鍵字namespace後命名空間主體,然後還可以跟一個分號。
錯誤和異常處理
異常處理
try塊包含的程式碼群組成了程式的正常操作部分,但是可能遇到某些嚴重的錯誤
Catch塊包含的代碼處理各種錯誤情況
Finally 包含的代碼清理資源或執行要在try塊末尾執行的其它操作
第5章 WEBSERVICE基礎
web service 體繫結構:web service 是自含的模組化的就髟程式,它可以在網路中被描述、發布、查肛以及調用.
web service 的優點
增強互通性
即時整合
通過封裝降複雜性
使傳統遺留系統獲得新生
web serivce 體系
部暑
發布
返回
web service有以下三種組件
服務提供者
服務代理
服務要求者
108
web service 有以下三種操作
在布/不發布
發現
綁定
web service 體繫結構描述
所謂web service 它是由企業
web service 平台組成部分
最基本的web service 平 台是XML加HTTP
全面的web service 平台是XML+HTTP+SOAP+WSDL+UDDI。在更高層次上,可能還要加一一些尚未廣泛接受的技術如XAML,XLANG,XKMS和XFS
SOAP是一個協議規範即簡易物件存取通訊協定 (SOAP)(simple object access protocol)定義了傳遞XML-ed資料時的統一universal description Discovery and integration 它提供了在web 上描述並發現商務服務的架構。
如何使用UDDI基本步驟
編寫調用遠程WEB service 的程式時,程式員使用UDDI 商業註冊中心來定位businessEntity資訊,這些資訊是由提供該web service的企業註冊
程式員可以進一步獲得更說細的BusinessService資訊或是得到一個完整的BusinessEntity結構。因為BusinessEntity結構包含了有關已布的web service的所有資訊因此程式員只需簡單地選擇一個bindingTemplate並儲存留待以後使用
基於web service在BindingTemplate的tmode
l中提供了調用規範的相關資訊程式員可以按照該web service的調用規範編寫程式
在運行時程式可以按需要使用已儲存下來的BindingTemplate的資訊serervice
112
WSDL:web service定義語言
WSDL是用來描述網路服務或是終端的一種XML語言,它用於定義web service以及如何調用它們。WSDL文檔可用於動態以豈有此理web service尋找已以布的web service以及綁定web service
WSDL為服務提供者提供了描述構奸在不同協議或編碼方式之上的WEB SERVICE請求基本格式的方法。WSDL用來描述一個WEB SERVICE能做什麼、它的位置在哪裡如何調用它等等。