常規技術面試題(.NET)21-30

21. 用sealed修飾的類有什麼特點?

該類爲密封類,不可被繼承

22. 在.Net中所有可序列化的類都被標記爲什麼?

使用Serializable特性標記

23. 下面的代碼中有什麼錯誤嗎?

using System;
class A
{
public virtual void F(){
Console.WriteLine(“A.F”);
}
}
abstract class B:A
{
public abstract override void F();
}

答案:abstract override 是不可以一起修飾方法

24. 請解釋接口的顯式實現有什麼意義?

顯式實現接口:實現類在實現接口中方法時,方法名前必須添加接口名,且不能添加訪問修飾符。在調用時,顯式實現接口的方法只能通過接口訪問,不能通過類訪問。

這樣做的好處:

1)若一個類實現接口,而接口中的方法只需要在類的內部實現,則可以使用顯式實現接口的方式,這樣類的實例這無法使用該接口成員。

2)顯式接口成員可以避免了成員之間因爲同名而發生混淆。如果一個類希望對名稱和返回類型相同的接口成員採用不同的實現方式,這就必須要使用到顯式實現接口方式。

25. 請解釋.NET採用委託實現的事件模型與JAVA中採用接口實現的事件模型有什麼區別,

.net中的委託概念java中沒有相同的,只有事件模式是一樣的,java中有一個叫Obserable接口,可以添加IEventListener,使用內部類可以構建類似於委託的概念

26. 請解釋ASP.NET中button linkbutton imagebutton 及hyperlink這四個控件之間的功能區別?
Button是按鈕控件,具有按鈕所有的屬性和事件方法,在客戶端被渲染爲表單元素提交按鈕。

Linkbutton是鏈接按鈕,用於創建超鏈接樣式的按鈕。該控件的外觀與 HyperLink 控件相同,但其功能與 Button 控件一樣。它的主要作用是就是在ASP.NET頁面中顯示一個超鏈接。當點擊鏈接時,頁面就會往服務器端傳遞信息,並且在服務器端來處理相應的事件。在客戶端被渲染爲超鏈接以及一段用於提交數據的JS代碼。

ImageButton 是圖片按鈕,它以一張圖片來代替按鈕,來執行按鈕的功能,顯示爲圖片,具有按鈕的所有功能,在客戶端被渲染爲表單元素圖片按鈕。

Hyperlink是超鏈接控件,用於創建超鏈接,點擊超鏈接可以使用戶轉移到同一頁面的不同部分或另一個頁面.不具有按鈕的功能。

27. override與重載的區別

Override:方法重寫,子類對父類中的方法進行重新實現,要求,父類與子類之間、方法名和參數類型,數量,順序一致。在C#允許子類對父類的抽象方法或虛方法進行重寫,以適應新的需求。
重載:在同一類中,存在多個具有相同方法名,而不同參數列表的方法,在調用時根據實際參數確定執行哪個重載方法。

28. 請描述一下ref和out在方法參數傳遞上的異同點?Ref和out

ref和out:相同點:

1)在實參和形參上都必須添加關鍵字

2)在方法中對參數的設置和改變將會被保留。

不同點:

1)ref修飾的參數在方法調用前必須初始化,而out修飾的參數在方法調用時候可以不初始化。

2)在方法中out修飾的參數必須進行賦值,而ref修飾的參數不需要。

3)out修飾的參數主要用於返回值,ref修飾的參數主要用於修改。

29. 請指出GAC的含義

GAC:Global Assembly Cache,全局程序集緩存,它的作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data、System.Windows.Forms等等。這樣,很多程序就可以從GAC裏面取得Assembly,而不需要再把所有要用到的Assembly都拷貝到應用程序的執行目錄下面。舉例而言,如果沒有GAC,那麼勢必每個WinForm程序的目錄下就都要從

C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705下面拷貝一份System.Windows.Forms.dll,這樣顯然不如都從GAC裏面取用方便,也有利於Assembly的升級和版本控制。GAC中的所有的Assembly都會存放在系統目錄"%winroot%\assembly下面。放在系統目錄下的好處之一是可以讓系統管理員通過用戶權限來控制Assembly的訪問。

30. 請指出.NET中所有類型的基類

.Net中所有類型的基類是System.Object

小劇場:只有你還沒有放棄。Will you hold the line.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章