閱讀850 返回首頁    go 微軟 go windows


深入.NET平台和C#編程---總結

一   第一章 
1 簡述.NET框架體係結構的組成 
  答:包括CLR(公共語言進行時)和框架類庫。 2 簡述CLR的主要用途 
  答:它是所有的,NET應用程序運行時環境,是所有.NET應用程序都要使用的編程基礎,它如同一個支持.NET應用程序運行和開發的虛擬機。包括CTS和CLS。  
CTS-通用類型係統:用於解決不同語言的數據類型不同的問題,所有.NET語言共享這一類型係統,在他們之間實行無縫互操作。 
CLS-公共語言規範:最低的語言標準,所有運行在.NET平台上的語言所必須支持的最小特征,以及該語言為其他.NET語言之間互操作所需要的完備特征。  
.NET編譯技術:  所有運行在.NET平台上的語言都配有自己的編譯器,通過這一編譯器將應用程序編譯為微軟中間代碼MSIL,再由編譯器JIT轉換為機器代碼,從而實現的跨語言的平台。  
.NET框架的主要內容有CLR、框架類庫、ADO.NET、XML\ASP.NET、WinForms、WebService等。 
二   第二章 
1 如何設置字段屬性 
  答:隻讀屬性,隻包含get訪問器       隻寫屬性,隻包含set訪問器       讀寫屬性,包含set和get訪問器 2 簡述C#中屬性和字段的區別 
  答:在C#中,我們可以通過屬性來約束對字段的非法的輸入,屬性也可以被設置成隻讀。 在C#中我們通常不會去直接訪問字段,而是通過訪問器訪問(get和set),這種實現方式我們稱之為屬性。 
屬性是對字段的封裝,保證了數據安全性和完整性。   
類定義了一組概念的模型,而對象是真實的實體。 
三   第三章 
1  簡述類和結構的區別    答: 
 類 結構 不同點 
引用類型 值類型 可以被繼承 不能被繼承 
可以有默認的構造方法 
有默認的無參構造方法,但不能顯式定義無參
的構造方法 


C#快速入門c#Express2008開...c#與.net編程

 

可以添加無參的構造方法 可以添加構造方法,但必須是帶參數的 
創建對象必須使用new 創建對象可以不使用new 類中可以給字段賦值 
結構中給字段賦值是錯誤的 
相同點 
都可以包含字段和方法 都可以實現接口 
 
枚舉是一組指定的常數,它可以用描述性的名稱表示,對可能值進行約束。  枚舉的定義:enum 
類圖是表示類的結構和類與類之間關係的圖表。  
四   第四章 
1  簡述泛型集合和傳統集合的異同    答: 
不同點: 
泛型可以定義類型安全的數據類型,可以約束泛型內的元素類型。 List<T>和Dictionary<K,V>訪問元素時無須類型轉換。 相同點: 
泛型集合可以作為類中的一個屬性。使用泛型集合必須實例化。 
五   第五章 
1 簡述操作讀寫一個文件的過程   答: 
 創建一個文件流:FileStream fs=new FileStream(string filePath);  創建閱讀器或寫入器:StreamReader sr=new StreamReader(fs); 
或:StreamWriter sw=new StreamWriter(fs); 
 執行讀寫操作:sr.ReadLine(); 或:sw.WriteLine();  關閉閱讀器或寫入器:sr.Close(); 或:sw.Close();  關閉文件流:fs.Close(); 
  
文件流的類是FileStream。 
StreamWriter是一個寫入器,SreamReader是一個讀取器。 
File類用於對文件進行操作,如複製、刪除等,Directory類用於對文件夾操作,它們都是靜態類。  常用的方法:判斷一個文件或目錄是否存在  File.Exists(string filePath);返回bool值,常用作if語句的條件。 XML稱為可擴展標記性語言,它主要用於描述數據。讀取一個XML文檔使用XmlDocument對象,XML節點使用XmlNode對象表示。 
六   第六章 
1  簡述public private protected三種訪問修飾符的區別 
修飾符 類內部 子類 其他類 public 
可以 
可以 
可以 

 

 


private 可以 不可以 不可以 protected 
可以 
可以 
不可以 
   
繼承必須符合 is a的關係,被繼承的類稱為父類或者基類,繼承其他類的類稱為子類或者派生類。 
繼承機製很好地解決了代碼複用的問題。 
子類繼承父類的成員,並且可以擁有自己特有的成員。 base關鍵字可以用於調用父類的屬性、方法、構造方法。 
繼承具有傳遞性,如果class A:B;class B:C,則A也可以訪問C的成員。 C#中類的繼承具有單根性,一個類隻能夠同時繼承一個父類。 被sealed關鍵字修飾的類稱為密封類,密封類不能被繼承。 
在子類中,如果不使用base關鍵字來顯示調用基類構造方法,則將隱式調用默認的構造方法。 
如果重載的構造方法有一個沒有使用base關鍵字來指明調用父類哪個構造函數,則父類必須提供一個默認的構造方法。 
繼承模擬了現實世界的關係,繼承實現了代碼的重用,繼承使得程序結構清晰,子類和父類的層次結構清晰,最終的目的是使其子類隻關注子類的相關行為和狀態,無須關注父類的行為與狀態。 
七   第七章 
1  簡述抽象方法和虛方法的區別    答: 
虛方法 
抽象方法 
用virtual修飾 用abstract修飾 有方法體 
無方法體 
可以被子類override(重寫),也可以不被重寫 非抽象子類中必須重寫 除了密封類外都可以定義 
隻能在抽象類中定義 
  
2  麵向對象的三大特征是什麼?簡述每個原則的基本功能。    (1)封裝:保證對象自身數據的完整性和安全性。 
   (2)繼承:建立類之間的關係,實現代碼複用,方便係統的擴展。    (3)多態:相同的方法調用可實現不同的實現方式   
多態是指兩個或多個屬於不同類的對象,對於同一個消息(方法調用)作出不同相應的行為方式。 
抽象方法是一個未實現的方法,它用abstract關鍵字修飾,含有抽象方法的類必然是抽象類。 使用抽象方法和虛方法都可以實現多態性。 
抽象方法要在其子類中通過override關鍵字重寫,除非它的子類也是抽象類。 裏氏替換原則: 
原則上子類對象是可以賦給父類對象的,也可以說子類可以替代父類。但是反過來,父類對象是不能賦給子類對象的。子類出現的地可以用父類代替。 

 

 


軟件中的設計模式是軟件開發中對於某種需求的一種經驗的總結,是特定問題經過實踐檢驗的特定解決方法。 
簡單工廠模式用於在調用者不知道對象屬於哪個子類的情況下,創建他們共同的父類。 
八   第八章 
1  簡述抽象類和接口的區別。   答: 
 
抽象類 接口 不同點 
用abstract定義 
用interface定義 隻能繼承一個類 可以實現多個接口 
非抽象派生類必須實現抽象方法 實現接口的類必須實現所有成員 
需要override實現抽象方法 
直接實現 
相同點 
不能實例化 
包含未實現的方法 派生類必須實現未實現的方法 
  
IComparable接口有一個未實現的CompareTo()方法,一個類實現這個方法就能夠進行排序。 接口是一組規範,是一種標準,遵循這個規範和標準就能實現某種功能。 接口可以讓使用者不必關心它內部是如何實現的,方便多人協作開發。 IComparable<T>是IComparable接口的泛型版,它對類型的約束更嚴格。 
IComparer<T>通常稱為比較器,它用於比較兩個對象的大小,可以作為參數傳遞給Sort()方法進行排序。 
接口作為參數傳遞的是一個實現了這個接口的對象。接口作為返回值就是要返回一個實現了這個接口的對象。 
九   第九章 
序列化是將對象的狀態存儲到特定存儲介質中的過程。 反序列化則是將存儲介質中的數據重新構建為對象的過程。 
標識一個類是否能夠序列化要在類的頭部添加一個特征[Serializable] 
特性其實就是一個類,它的主要功能是對程序中的元素,如類、字段、方法、屬性添加描述性的信息。 
Internal修飾的成員在同一個程序集中都可以訪問,但是其他的程序集中的就不能訪問,應用程序中的類,如果不指定訪問修飾符,默認就是internal修飾。 序列化(反序列化)的步驟:  命名空間:System.RunTime.Formatters.Binary; 
 ○
1.文件流:FileStream fs=new FileStream(string filePath,FileModel.Create);  ○
2.二進製流:BinryFommater bf=new BinaryFommater();  ○3.序列化:bf.Serialize(fs,保存對象);   (反序列化):(保存對象)bf.DeSerialize(fs);--------要強製類型轉化 
 ○4.關閉文件流:fs.Close();  
 

 

 


在.NET框架下開發三層結構數據庫應用係統 
一    第一章 
1  用三層結構開發應用係統有哪些優勢? 
  答:各層之間即相互依賴又互不影響。表示層隻負責界麵,業務邏輯層是表示層和數據訪問層的橋梁,數據訪問層直接操作數據庫。    
2  業務邏輯層的主要職責? 
   (1)根據業務規則對數據進行加工和處理 
   (2)與相鄰的表示層和數據訪問層進行數據交換 
二    第二章 
1  自定義Dataset的主要步驟   答: 
 創建Dataset對象  創建DataTable對象 
 創建DataColumn對象搭建表結構  將創建好的表結構添加到表中  創建DataRow對象新增數據  將數據插入到表中  將表添加到Dataset中 
  
用ADO.NET實現三層結構應用係統是,DataSet的主要作用是三層之間數據傳遞的載體。 DataView是DataTable的動態數據試圖,我們使用DataView的Sort、RowFilter屬性實現數據的排序、過濾。 
用ADO.NET執行帶參數的SQL命令時,我們需要使用參數(Parameters)集合的Add方法為SQL命令添加參數,包括參數名稱、參數類型。 
三    第三章 
用OOP實現三層結構時,實體類是三層結構數據傳遞的載體。 
using在C#中主要有兩個用途:一種是作為指令,引用命名空間。另一種是作為語句,用於定義一個範圍,在此範圍末自動釋放對象。 
在使用實體類開發三層結構,用戶的請求需要返回實體對象集合時,可使用List<T>實現。 在三層結構中,我們使用實體類消除關係數據與類之間的差別,以更好地使用麵向對象的思想來實現我們的係統。 
四    第四章 
在.NET平台下有兩種異常。一是由於公共語言運行庫引發的異常,另一種是用戶應用程序引發的異常。 
Exception類有4個常用屬性:1  Message 提供異常常用信息。2  Source  提供導致異常發生的應用程序或對象名稱。3  StackTrace  提供在堆棧上所調用方法的詳細信息,並首先顯示最近的調用方法。4  InnerException  對內部異常的引用,如果此異常基於前一個異常,

最後更新:2017-04-03 14:54:00

  上一篇:go WebService——通過契約優先開發webservice
  下一篇:go android 文字疊加顯示在圖片之上控件的實現 -- 充分利用TextView