標籤:.net 面試題
1、new有幾種用法?
三種:
1、new是運算子,用於建立對象和調用建構函式。ClassA a = new ClassA();
2、new是修飾符,用於隱藏基類成員的繼承成員。
3、new是約束。用在泛型中添加類型約束。 Class Test<T> where T:new(){ public T GetItem(){return newT();}}
2、new與override的區別?
new修飾符隱藏了重寫方法,通過將派生對象轉為為基類對象,調用了基類的方法。而override則是完全重寫了方法,即便是轉為基類對象也調用的也是衍生類別的重寫方法。
即:new隱藏的基類方法,override重寫基類方法。
3、概述o/rmapping 的原理?
利用ORM工具(Hibernate等),使用反射、配置將類與資料庫表進行映射。
Class<——>Table Property <——>Field
4、類成員有哪些訪問形式?
1、this.類成員; 2、new 類的對象調用類成員; 3、使用static關鍵字,用類調用
5、ADO.NET中的五個重要對象,並簡要描述?
1、Connection(串連資料庫)
2、Command(執行T-SQL語句)
3、DataAdapter(使用者填充DataSet,斷開模式)
4、DataReader(讀取資料庫,一種唯讀模式,只向前的)
5、DataSet(資料集,好比電腦的記憶體)
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/57/14/wKiom1SQ4pPg4rvCAAFTLbLU6Tw090.jpg" title="ADO.png" alt="wKiom1SQ4pPg4rvCAAFTLbLU6Tw090.jpg" />
6、.NET中class和struct的異同?
Class都繼承自System.object類,是參考型別;
Struct都是繼承自System.ValueType類,是一種實值型別。
Class可繼承類和介面,struct只能繼承介面,且不能作為類的基類;class需要使用new執行個體化,struct可以不使用new執行個體化;class的回收靠記憶體回收機制,stuct使用完後,自動分解;class的比較可以用equals和==來比,stuct只能用==比較。
7、概述.NET裡對 remoting 和 webservice 兩項技術的理解和實際中的應用?
1、Remoting 是MarshByReference的,可以傳變數的引用,直接對伺服器對象操作。速度快,適合Intranet(企業內部互連網),一般用在C/S系統中。WebService 是MarshByValue的,必須傳對象的值。速度慢,可以過FIREWALL,配置比較簡單,適合Internet(網際網路),一般用在B/S系統中。 2、一般來說,Remoting是和平台相關的,需要客戶和伺服器都是.NET,但可配置特性比較好,可以自訂協議。WebService可以做到跨平台通訊,但必須採用SOAP協議。 3、 SOAP訊息有RPC和文檔兩種樣式。文檔樣式的body元素中包含一個或多個元素,可以是任何內容,只要接受者理解就行了。
8、概述三層結構體系?
三層架構從下至上分別為:資料訪問層、商務邏輯層、展示層。區分層次的目的即為了“高內聚,低耦合”的思想。
1:資料訪問層:主要負責各個對資料檔案的操作。
2:商務邏輯層:主要負責對資料層的操作。也就是說把一些資料層的操作進行組合。
3:展示層:主要對使用者的請求接受,以及資料的返回,為用戶端提供應用程式的訪問。
9、物件導向的思想包括什嗎?
封裝:用抽象的資料類型將資料和基於資料的操作封裝在一起,資料被保護在抽象資料類型內部。
繼承:子類擁有父類的所有資料和操作。
多態:一個程式中同名的不同方法共存的情況。
10、ASP.NET的使用者控制項和自訂控制項?
使用者控制項建立容易,但是易用性較差。自訂控制項,建立難,但是易用性好。
11、什麼叫應用程式定義域?什麼是受管制的代碼?什麼是強型別系統?什麼是裝箱和拆箱?什麼是重載?CTS、CLS和CLR分別作何解釋?
應用程式定義域:作業系統和運行庫環境通常會在應用程式間提供某種形式的隔離,以確保在一個應用程式中啟動並執行代碼不會對其他不相關的應用程式產生不良影響
受管制的代碼:把有關記憶體管理的操作全部交給.NET的CLR來管理。不能直接進行記憶體的讀取之類的和硬體相關的操作。比較安全。
Managed 程式碼:使用基於公用語言運行庫的語言編譯器開發的代碼稱為Managed 程式碼。
從實值型別介面轉換到參考型別:裝箱。
從參考型別轉換到實值型別:拆箱。
重載:相同名稱的不同方法,他們具有不同的簽名(相同的名稱,不同的參數類型和順序)。
強型別:C# 是強型別語言;因此每個變數和對象都必須具有宣告類型。
CTS:一般型別系統;CLS:通用語言規範;CLR:公用語言運行庫。
12、列舉瞭解的XML技術及應用?
很多新的 Internet 語言是通過 XML 建立的,如:
XML主要應用與資料互動,web服務等領域。
13、C#中委託是什嗎?事件是不是一種委託?
委託是一種安全的類似於函數指標,但是她比指標要安全的多,它可以把方法作為一個參數傳遞給另一個方法,可以理解為指向函數的引用。事件是一種訊息機制,它是一種委託,委託不帶方法體。
本文出自 “StudyBao” 部落格,謝絕轉載!
C# 面試題