溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中?NET的基礎(chǔ)知識點

發(fā)布時間:2021-03-06 14:12:15 來源:億速云 閱讀:157 作者:小新 欄目:編程語言

這篇文章主要介紹C#中NET的基礎(chǔ)知識點,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

NET的基礎(chǔ)知識點。

1、面向?qū)ο笳Z言的三大特性:封裝、繼承、多態(tài);

2、接口和類有什么異同:

  不同點:

  ?、俳涌诓荒苤苯訉嵗?/p>

  ?、诮涌谥话椒ɑ?qū)傩缘穆暶?,不包含方法的實現(xiàn)。

  ?、劢涌诳梢远嗬^承,類只能單繼承。

   ④表達的含義不同,接口主要定義一種規(guī)范,統(tǒng)一調(diào)用方法,也就是規(guī)范類,約束類,類是方法功能的實現(xiàn)和集合

 相同點:

  ?、俳涌?、類和結(jié)構(gòu)都可以從多個接口繼承。

  ?、诮涌陬愃朴诔橄蠡悾豪^承接口的任何非抽象類型都必須實現(xiàn)接口的所有成員。

  ?、劢涌诤皖惗伎梢园录⑺饕?、方法和屬性。

3、抽象類和接口有什么異同

  ①繼承:接口支持多繼承;抽象類不能實現(xiàn)多繼承。

 ?、诒磉_的概念:接口用于規(guī)范,更強調(diào)契約,抽象類用于共性,強調(diào)父子。抽象類是一類事物的高度聚合,那么對于繼承抽象類的子類來說,對于抽象類來說,屬于"Is A"的關(guān)系;而接口是定義行為規(guī)            范,強調(diào)“Can Do”的關(guān)系,因此對于實現(xiàn)接口的子類來說,相對于接口來說,是"行為需要按照接口來完成"。

  ③方法實現(xiàn):對抽象類中的方法,即可以給出實現(xiàn)部分,也可以不給出;而接口的方法(抽象規(guī)則)都不能給出實現(xiàn)部分,接口中方法不能加修飾符。

  ④子類重寫:繼承類對于兩者所涉及方法的實現(xiàn)是不同的。繼承類對于抽象類所定義的抽象方法,可以不用重寫,也就是說,可以延用抽象類的方法;而對于接口類所定義的方法或者屬性來說,在繼承類          中必須重寫,給出相應(yīng)的方法和屬性實現(xiàn)。

  ⑤新增方法的影響:在抽象類中,新增一個方法的話,繼承類中可以不用作任何處理;而對于接口來說,則需要修改繼承類,提供新定義的方法。

 ?、藿涌诳梢宰饔糜谥殿愋停杜e可以實現(xiàn)接口)和引用類型;抽象類只能作用于引用類型。

  ⑦接口不能包含字段和已實現(xiàn)的方法,接口只包含方法、屬性、索引器、事件的簽名;抽象類可以定義字段、屬性、包含有實現(xiàn)的方法。

4、virtual、sealed、override和abstract的區(qū)別

  ①virtual申明虛方法的關(guān)鍵字,說明該方法可以被重寫

 ?、趕ealed說明該類不可被繼承

  ③override重寫基類的方法

 ?、躠bstract申明抽象類和抽象方法的關(guān)鍵字,抽象方法不提供實現(xiàn),由子類實現(xiàn),抽象類不可實例化。

5、重載(override)和重寫(overload)有什么區(qū)別

  重載:當(dāng)類包含兩個名稱相同但簽名不同(方法名相同,參數(shù)列表不相同)的方法時發(fā)生方法重載。用方法重載來提供在語義上完成相同而功能不同的方法。(一個類中、多個方法)

  重寫:在類的繼承中使用,通過覆寫子類方法可以改變父類虛方法的實現(xiàn)。(二個類以上)

6、結(jié)構(gòu)體和類的區(qū)別

 ?、俳Y(jié)構(gòu)體是值類型,類是引用類型
 ?、诮Y(jié)構(gòu)體不支持無慘構(gòu)造函數(shù),不支持析構(gòu)函數(shù),并且不能有protected修飾;
 ?、劢Y(jié)構(gòu)體常用于數(shù)據(jù)存儲,類class多用于行為;
  ④類class需要用new關(guān)鍵字實例化對象,struct可以不適用new關(guān)鍵字;
 ?、蓊恈lass可以為抽象類,struct不支持抽象;

7、out和ref的異同點

  ①ref要求參數(shù)在使用之前要顯式初始化,out要在方法內(nèi)部初始化;

 ?、趏ut適合用在需要retrun多個返回值的地方,而ref則用在需要被調(diào)用的方法修改調(diào)用者的引用的時候。

  ③ref是有進有出,out是只出不進;(ref可以把參數(shù)的數(shù)值傳遞進函數(shù),但是out是要把參數(shù)清空,就是說你無法把一個數(shù)值從out傳遞進去的,out進去后,參數(shù)的數(shù)值為空)

8、值類型和引用類型的區(qū)別

  ①值類型:就是一個包含實際數(shù)據(jù)的量。即當(dāng)定義一個值類型的變量時,C#會根據(jù)它所聲明的類型,以棧方式分配一塊大小相適應(yīng)的存儲區(qū)域給這個變量,隨后對這個變量的讀或?qū)懖僮骶椭苯釉谶@塊內(nèi)存          區(qū)域進行;

  ②引用類型:一個引用類型的變量不存儲它們所代表的實際數(shù)據(jù),而是存儲實際數(shù)據(jù)的引用。
  引用類型分兩步創(chuàng)建:首先在棧上創(chuàng)建一個引用變量,然后在堆上創(chuàng)建對象本身,再把這個內(nèi)存的句柄(也是內(nèi)存的首地址)賦給引用變量;

C#中?NET的基礎(chǔ)知識點

9、什么是拆箱和裝箱

  裝箱→值類型轉(zhuǎn)換為引用類型,拆箱→引用類型轉(zhuǎn)換為值類型。

10、裝箱和拆箱有什么性能影響?怎么解決呢?

 ?、儆绊懀憾忌婕暗絻?nèi)存的分配和對象的創(chuàng)建,有較大的性能影響;

 ?、诮鉀Q:使用泛型

11、委托是什么?事件是不是委托?

 ?、傥校侯愃朴?C或 C++中的函數(shù)指針,允許將方法作為參數(shù)進行傳遞;(可以把一個方法作為參數(shù)代入另一個方法)

  ②事件是特殊的委托,事件內(nèi)部是基于委托來實現(xiàn)的;

12、構(gòu)造器Constructor是否可以被繼承?是否可以被Override?

  Constructor不可以被繼承,因此不能被重寫(Overriding),但可以被重載(Overloading).

13、是否可以集成String類?

  String類是final類所以不可以繼承string類。

14、當(dāng)一個線程進入一個對象的方法后,其他線程是否可以進入該方法?

  不可以,一個對象的方法只能由一個線程訪問。

15、用最有效的方法算出2乘以8等于幾?

  2<<3(左乘,右除)

16、Error和Exception有是區(qū)別?

  Error表示恢復(fù)不是不可能,但是很困難,Exception表示一種實際或?qū)崿F(xiàn)問題,它表示程序運行正常不可以發(fā)生的。

17、UDP和TCP連接有和異同?

  ①TCP是傳輸控制協(xié)議,提供的是面向連接的,是可靠的,字節(jié)流服務(wù),TCP提供超時重撥,檢驗數(shù)據(jù)功能。

  ②UDP是用戶數(shù)據(jù)報協(xié)議,是一個簡單的面向數(shù)據(jù)報的傳輸協(xié)議,是不可靠的連接。

18、new關(guān)鍵字的用法

?、賜ew 運算符 用于創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)。

②new 修飾符 用于向基類成員隱藏繼承成員。

③new 約束   用于在泛型聲明中約束可能用作類型參數(shù)的參數(shù)的類型。

19、Using關(guān)鍵字的用法

  ①引用命名空間;

  ②為命名空間或類型創(chuàng)建別名;(using + 別名 = 包括詳細命名空間信息的具體的類型)

  ③釋放資源(關(guān)閉文件流);

20、可訪問性級別有哪幾種

  ①pubic 訪問不受限制。

  ②protected 訪問僅限于包含類或從包含類派生的類型。

 ?、踚nternal 訪問僅限于當(dāng)前程序集。

 ?、躳rotected internal 訪問僅限于從包含類派生的當(dāng)前程序集或類型。

 ?、輕rivate 訪問僅限于包含類型。

21、 一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數(shù)是多少, 用遞歸算法實現(xiàn)。

以上是“C#中NET的基礎(chǔ)知識點”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

cs
AI