C 中C C 程式設計師注意問題

2021-05-21 17:36:24 字數 3309 閱讀 1054

1

、c/c++

程式設計師請注意,不能在

case

語句不為空時「向下執行」。 2

、值型別和引用型別之間的區別:

c#的基本型別(

int,

char

等)都是值型別,是在棧中建立的。而物件是引用型別,建立於堆中,需要使用關鍵字

new。 3

、在c#

中通過例項訪問靜態方法或成員變數是不合法的,會生成編譯器錯誤。但是我們可以通過宣告他們的類的名字來發訪問靜態成員。 4

、c#派生類中,沒有私有或者保護繼承。關於這一點

c++程式設計師注意了。 5

、c#多型性,c++

程式設計師注意

,必須顯式用關鍵自

override

標記重新定義了虛方法的方法宣告。 6

、抽象類與密封類,抽象類用來被派生,並為其子類提供遵循模版;而密封類則完全不允許被派生。抽象類關鍵字是

abstract

;密封類關鍵字為

sealed7、

c#中結構體的定義與

c++的非常不同。在

c++中,結構體與類除了預設的可見性(乙個是

public

,乙個是

privae

)之外完全一樣。而在

c#中,結構體是值型別,而類是引用型別。 8

、c#中委託相當於

c++中的方法指標,關鍵字為

delegate。

9、.net

用來建立網頁程式的技術是

asp.net2.0

,它在命名空間

system.web

和system.web.ui

中為建立網頁程式提供了一套豐富的型別。 10

、c#執行緒三種同步機制:互鎖類(

interlocked

),c# lock

語句,以及監控器物件(

monitor class)

11、c#中要使用值變數之前,需要事先宣告,並且要在使用之前先設定初始值,永遠不可為

null

;引用型別變數,儲存在

heap

中,不允許在初始化之前使用這個變數。 12

、c#中switch-case

語句與c/c++

不同地方在於

c#中不允許

case

判斷式「

silent fall through

」。也就是說,當找到符合

case

標記後的常數後,只會執行此

case

區塊中的程式**,不會再執行其他的

case

判斷式進行判斷的動作。 13

、引數傳入機制

只限定目前的專案,或是繼承自此類的成員才可以訪問。

結構與類的差異:

16、值型別與引用型別之間的互換稱為

boxing

與unboxing

17、在

c#中,物件都是使用

new保留字建立的,建立物件時分兩個步驟:

一、向系統要求記憶體。

二、呼叫構造器進行初始化。 18

、c#中多型性,虛擬方法用來指明擴充套件類可以改寫基礎類方法的實現部分。多型性用

override

、new

來實現,在

c++中用

virtual

來實現。

override

方法則是應用在擴充套件類當中,可使用

override

保留字指明欲改寫基礎類的

virtual

成員之實現部分。換言之,

virtual

方法是在基礎類中定義的,而

override

是在擴充套件類中定義的。

方法宣告前加上了

virtual

修飾符,我們稱之為虛方法,反之為非虛。使用了

virtual

修飾符後,不允許再有

static, abstract,

或override

修飾符。

示例:class b

}class d : b

}class n : d

public static void main() }19

、介面(

inte***ce

)和類(

class

)非常相似,唯一的不同點在於介面中不包含任何實現程式**。注意:定義在介面中的方法隱含都是屬於

public

,因此不能夠在方法之前加

public

修飾符。 20

、attribute

屬性

attribute

不過是乙個宣告式的標記,能在執行時期將一些資訊,如類、資料結構、

enum

以及assembly

等資訊,傳送給

.net

執行時期引擎,以動態個更改物件執行時期的行為。不妨將

attribute

想象成乙個可供程式儲存、然後使用的注釋。 21

、反射反射提供了封裝程式集、模組和型別的物件(

type

型別)。可以使用反射動態建立型別的例項,將型別繫結到現有物件,或從現有物件獲取型別並呼叫其方法或訪問其字段和屬性。如果**中使用了屬性,可以利用反射對它們進行訪問。

反射在下列情況下很有用:

當需要訪問程式元資料中的屬性時。請參見主題使用反射訪問屬性。

檢查和例項化程式集中的型別。

在執行時構建新型別。使用

system.reflection.emit

中的類。

執行後期繫結,訪問在執行時建立的型別的方法。請參見主題動態載入和使用型別。

、c#中使用陣列要注意兩件事情:陣列名稱不可置於中括號前方;宣告陣列變數時,不能夠指定陣列的大小。 15

、類 c#的成員訪問修飾符包含以下幾種:

public

任何外部的類都可以不受限制的訪問這個類的方法和資料成員。

private

類中的所有方法與資料成員只能在此類中使用,外部無法訪問。

protected

除了讓本身的類可以使用之外,任何繼承自此類的子類都可以訪問。

internal

在同乙個

.net assembly(或

library

,也就是說,同乙個

exe或同乙個

dll中的成員)中都可以訪問。

protected internal

C 中C C 程式設計師注意問題

1 c c 程式設計師請注意,不能在case語句不為空時 向下執行 2 值型別和引用型別之間的區別 c 的基本型別 int,char等 都是值型別,是在棧中建立的。而物件是引用型別,建立於堆中,需要使用關鍵字new。3 在c 中通過例項訪問靜態方法或成員變數是不合法的,會生成編譯器錯誤。但是我們可以...

C C 中C C 程式設計師要注意的問題

1 c c 程式設計師請注意,不能在case語句不為空時 向下執行 2 值型別和引用型別之間的區別 c 的基本型別 int,char等 都是值型別,是在棧中建立的。而物件是引用型別,建立於堆中,需要使用關鍵字new。3 在c 中通過例項訪問靜態方法或成員變數是不合法的,會生成編譯器錯誤。但是我們可以...

C,C 程式設計師使用C 應注意的一些小問題 2

11 c 中用get set 表示設定器函式,用於獲取或設定類中各許可權資料 c 中內建 value 關鍵值用於表示 set函式中使用者傳遞值12 c 中 object 類是所有其他型別的基類,所有型別都直接或間接地從 object 類中繼承 對乙個object 的變數可以賦予任何型別的值 obje...