欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

2016年最新C#面試題及答案整理

2016-03-24 12:01:16 4104瀏覽

         2016年最新C#面試題匯總及答案解答,希望對剛出來找工作的Android程序員有所幫助。

         1、C#中類是否支持多繼承?請說明原因。

         答:不支持,需要用接口來實現(xiàn)多繼承。

         2、我們都知道一個類可以有多個構造函數(shù),并且C#會在我們創(chuàng)建類的時候默認的提供一個無參的構造函數(shù),當我實現(xiàn)了另外一個有參數(shù)的構造函數(shù)的時候,我還能調(diào)用無參數(shù)的構造函數(shù)嗎?請說明原因。

         答:不能,因為一旦你實現(xiàn)了一個構造函數(shù),C#就不會再提供默認的構造函數(shù)了,所以需要自己手動寫入一個無參數(shù)的構造函數(shù)。

         3、請簡略描述重載和重寫的區(qū)別?

         答:方法重載提供了一個相同的方法但是方法簽名的參數(shù)不同的調(diào)用的實現(xiàn)。

         重寫提供了子類中改變父類方法行為的實現(xiàn)。

         4、請問能設置類A可被繼承,但類A中的某個方法不能被重寫嗎?

         答:能,將類A的修飾符標記為public、標記類A中的不允許重寫的方法為sealed

         sealed關鍵字不僅可以限制類,也可以限制方法。

         5、const和readonly有什么區(qū)別?

         答:const關鍵字用來聲明編譯時的常量

         readonly用來聲明運行時的常量

         6、什么時候必須聲明一個類為抽象類?

         (1)當這個類中有抽象方法的時候,必須聲明類為抽象類

         (2)該類沒有完全實現(xiàn)父類的抽象方法時,也需要聲明為抽象類

         7、接口和抽象類的區(qū)別是什么?

         答:接口中所有的方法都不能有實現(xiàn),并且不能指定方法的修飾符抽象類中可以有方法的實現(xiàn),也可以指定方法的訪問修飾符第一個繼承接口的類必須實現(xiàn)接口里的所有方法,而抽象類中抽象方法的實現(xiàn)是由第一個非抽象的派生類來實現(xiàn)。

         8、類的私有成員會被子類繼承嗎?請說明原因。

         答:會被子類繼承,但是不能被訪問。所以看上去是不能被繼承的,實際上確實被繼承了。

         9、請寫出C#中的單例模式

         答:

         public class Single

         {

         private static Single instance;

         private Single (){}

         public static Single GetInstance ()

         {

         if (instance == null) {

         instance = new Single ();

         }

return instance;

         }

         }

         10、現(xiàn)有一個整數(shù)number,請寫一個方法判斷這個整數(shù)是否是2的N次方

         答:

         private static bool GetFlag(int num)

         {

         if (num < 1) return false;

         return (num & num - 1) == 0;

         }

         11、追加一個雙重鎖定的單例模式

         [csharp] view plain[blog.csdn.net/sinat_20559947/article/details/48825209#] copy[blog.csdn.net/sinat_20559947/article/details/48825209#]

         using System;

         using System.Collections.Generic;

         ///

         /// 適用于在多線程的情況下保證只有一個實例化對象的情況,例如銀行的操作系統(tǒng)

         ///

         namespace DoubleLockInstance

         {

         //----------------------------------

         // 雙重鎖定單例

         public sealed class Singleton

         {

         // 定義一個類對象,用于內(nèi)部實現(xiàn)

         private static Singleton myInstance;

         // readonly - 這個成員只能在“類初始化”時賦值 ,所謂的類初始化,就是直接在類里面初始化

         // 變量標記為 readonly,第一次引用類的成員時創(chuàng)建實例

         private static readonly object lockRoot = new object ();

         // 設置構造方法為私有,這樣就不能在外部實例化類對象了

         private Singleton ()

         {

         }

         // 實例化對象的方法

         public static Singleton GetInstance ()

         {

         // 外部不能實例化對象,但是能調(diào)用類里面的靜態(tài)方法

         // 外部需要調(diào)用這個方法來使用類對象,如果對象不存在就創(chuàng)建

         // 這里面使用兩個判斷是否為null的原因是,我們不需要每次都對實例化的語句進行加鎖,只有當對象不存在的時候加鎖就可以了

         if (myInstance == null) {

         // 鎖定的作用就是為了保證當多線程同時執(zhí)行這句代碼的時候保證對象的唯一性

         // 鎖定會讓同時執(zhí)行這段代碼的線程排隊執(zhí)行

         // lock里面需要用一個已經(jīng)存在的對象來判斷,所以不能使用myInstance

         lock (lockRoot) {

         // 這里還需要一個判斷的原因是,如果多線程都通過了外層的判斷進行排隊

         // 那將會實例化多個對象出來,所以這里還需要進行一次判斷,保證線程的安全

         if (myInstance == null) {

         myInstance = new Singleton ();

         }

         }

         }

         return myInstance;

         }

         }

         }

         最后想要了解更多關于面試題的文章,請關注扣丁學堂資訊欄目、微博、微博等平臺,站內(nèi)還有關于程序員的Android培訓視頻和iOS開發(fā)視頻供廣大學者學習。

 查看更多關于“Android培訓資訊”的相關文章>>

標簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部