C 基礎知識問答 一

2021-06-25 22:49:21 字數 1653 閱讀 3372

1.靜態變數與非靜態變數的區別

靜態變數在類載入的時候進行初始化和分配記憶體,只有乙個例項。通過類來進行訪問。

而非靜態變數是在物件在例項化的時候進行分配記憶體,有多個例項。通過物件來進行訪問。同乙個非靜態變數,多個例項中的值是不同。

另外加一句,靜態函式成員不能訪問非靜態成員,如非靜態變數,非靜態函式。

2.const和static readonly的區別

const

(1)在編譯期間解析的常量

(2)必須在聲名期間就初始化

(3)既可以修飾類中的成員,也可以修飾函式體內的成員。

static readonly

(1)在執行期間解析的常量

(2)既可以在聲名時進行初始化,可以在構造中初始化。

(3)只可以修飾類的成員

靜態常量在速度上會稍稍快一些,但是靈活性卻比動態常量要差。修改之後要進行重新編譯。

3.5種訪問修飾符

public

internal

protected

internal protected

private

就internal protected比較特殊一點,同乙個程式集的所有類,以及所有程式集的中的子類都可以訪問

4.類與結構的區別

(1)從型別上說

結構是值型別,值型別在棧上分配位址,所有的基礎型別都是結構型別。

類是引用型別,在堆上分配位址。

結構的賦值將分配產生乙個新的物件,類的例項進行賦值指示複製了引用,都指向了一段實際物件分配的記憶體。

(2)繼承性

結構不能被繼承,隱式的sealed,但是結構可以繼承介面

結構沒有析構函式

(3)如何選擇

處理大量的邏輯物件的時候選擇類

表現抽象或者多級別的物件層次時,選擇類

在大多數情況,該型別只是一些資料時,結構是最佳的選擇

5.密封類

防止該類被其他類繼承。

(1)不能與abstract修飾在一起使用

(2)密封類的主要作用是防止派生,所以它不能作為基類來使用,所以對密封類成員的呼叫速度略快。

(3)當應用於方法或者屬性的時,sealed修飾符必須與override修飾符一起使用

(4)在密封類中不允許在定義虛函式,但是對於其父類的虛函式會隱式轉化成非虛函式。

6.索引器

是一種特殊的類成員,可以使得物件像類似於陣列的方式訪問。

索引器的索引可以是任意的型別

7.new關鍵字的有幾種用法

(1)new運算子,用於建立物件並呼叫建構函式

(2)new修飾符

表示隱藏了基類中的同名成員,只能用於繼承類中

一般的用法是彌補基類的設計不足

(3)new約束

約束指定泛型類宣告中的任何型別引數都必須有公共的無引數建構函式。

new與override的區別

override是覆蓋基類的方法,讓基類的方法以子類的方法實現,new是定義乙個全新的子類的方法,這個方法只屬於子類,與基類的方法無關。

8.this問題 

(1)this是指當前物件是自己

(2)把this作為引數傳遞

(3)在建構函式中,通過this可以呼叫同一class中別的建構函式

一般的使用方法隱藏同名成員,將物件本身作為引數,聲名索引器,判斷引數是否為物件本身

問答基礎知識

傳統搜尋引擎的缺點 1,相關資訊太多,目前傳統的搜尋引擎返回了太多相關網頁,使用者不容易快速定位到真正想要的資訊上。對傳統搜尋引擎的改進 2,探索將搜尋引擎從字串層面推進到實體層面,幵發出真正理解使用者搜尋意圖,能夠直接回答人們所提問題的系統,這樣的系統稱之為自動問答系統qa question an...

WF基礎知識問答

shivprasad koirala在codeproject上發表了一篇文章windows workflow foundation faq,介紹了wf的基礎知識。這對於理清wf的整個脈絡有一定幫助,摘譯如下。什麼是windows工作流基礎?wwf 張逸注 微軟的官方簡稱為wf 是一種程式設計模型,用...

loadrunner 效能測試基礎知識問答

1.什麼是負載測試?什麼是效能測試 負載測試是逐漸增加系統負載,測試系統效能的變化,並最終確定在滿足效能指標的情況下,系統所能承受的最大負載量的測試。例如 訪問乙個頁面的響應時間規定不超過1秒,負載測試就是測試在響應時間為1秒時,系統所能承受的最大併發訪問使用者的數量。效能測試 在一定的約束條件下 ...