溫馨提示×

溫馨提示×

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

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

C#中?NET的基礎知識點

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

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

NET的基礎知識點。

1、面向對象語言的三大特性:封裝、繼承、多態;

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

  不同點:

  ?、俳涌诓荒苤苯訉嵗?。

  ?、诮涌谥话椒ɑ驅傩缘穆暶?,不包含方法的實現。

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

  ?、鼙磉_的含義不同,接口主要定義一種規范,統一調用方法,也就是規范類,約束類,類是方法功能的實現和集合

 相同點:

  ?、俳涌?、類和結構都可以從多個接口繼承。

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

  ?、劢涌诤皖惗伎梢园录?、索引器、方法和屬性。

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

 ?、倮^承:接口支持多繼承;抽象類不能實現多繼承。

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

 ?、鄯椒▽崿F:對抽象類中的方法,即可以給出實現部分,也可以不給出;而接口的方法(抽象規則)都不能給出實現部分,接口中方法不能加修飾符。

 ?、茏宇愔貙懀豪^承類對于兩者所涉及方法的實現是不同的。繼承類對于抽象類所定義的抽象方法,可以不用重寫,也就是說,可以延用抽象類的方法;而對于接口類所定義的方法或者屬性來說,在繼承類          中必須重寫,給出相應的方法和屬性實現。

 ?、菪略龇椒ǖ挠绊懀涸诔橄箢愔?,新增一個方法的話,繼承類中可以不用作任何處理;而對于接口來說,則需要修改繼承類,提供新定義的方法。

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

 ?、呓涌诓荒馨侄魏鸵褜崿F的方法,接口只包含方法、屬性、索引器、事件的簽名;抽象類可以定義字段、屬性、包含有實現的方法。

4、virtual、sealed、override和abstract的區別

 ?、賤irtual申明虛方法的關鍵字,說明該方法可以被重寫

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

 ?、踥verride重寫基類的方法

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

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

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

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

6、結構體和類的區別

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

7、out和ref的異同點

 ?、賠ef要求參數在使用之前要顯式初始化,out要在方法內部初始化;

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

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

8、值類型和引用類型的區別

 ?、僦殿愋?就是一個包含實際數據的量。即當定義一個值類型的變量時,C#會根據它所聲明的類型,以棧方式分配一塊大小相適應的存儲區域給這個變量,隨后對這個變量的讀或寫操作就直接在這塊內存          區域進行;

 ?、谝妙愋?一個引用類型的變量不存儲它們所代表的實際數據,而是存儲實際數據的引用。
  引用類型分兩步創建:首先在棧上創建一個引用變量,然后在堆上創建對象本身,再把這個內存的句柄(也是內存的首地址)賦給引用變量;

C#中?NET的基礎知識點

9、什么是拆箱和裝箱

  裝箱→值類型轉換為引用類型,拆箱→引用類型轉換為值類型。

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

 ?、儆绊懀憾忌婕暗絻却娴姆峙浜蛯ο蟮膭摻?,有較大的性能影響;

 ?、诮鉀Q:使用泛型

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

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

 ?、谑录翘厥獾奈?,事件內部是基于委托來實現的;

12、構造器Constructor是否可以被繼承?是否可以被Override?

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

13、是否可以集成String類?

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

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

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

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

  2<<3(左乘,右除)

16、Error和Exception有是區別?

  Error表示恢復不是不可能,但是很困難,Exception表示一種實際或實現問題,它表示程序運行正常不可以發生的。

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

 ?、賂CP是傳輸控制協議,提供的是面向連接的,是可靠的,字節流服務,TCP提供超時重撥,檢驗數據功能。

 ?、赨DP是用戶數據報協議,是一個簡單的面向數據報的傳輸協議,是不可靠的連接。

18、new關鍵字的用法

?、賜ew 運算符 用于創建對象和調用構造函數。

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

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

19、Using關鍵字的用法

 ?、僖妹臻g;

 ?、跒槊臻g或類型創建別名;(using + 別名 = 包括詳細命名空間信息的具體的類型)

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

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

 ?、賞ubic 訪問不受限制。

 ?、趐rotected 訪問僅限于包含類或從包含類派生的類型。

 ?、踚nternal 訪問僅限于當前程序集。

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

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

21、 一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞歸算法實現。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

cs
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女