1、c/c++程式設計師請注意,不能在case語句不為空時「向下執行」。
2、值型別和引用型別之間的區別:c#的基本型別(int,char等)都是值型別,是在棧中建立的。而物件是引用型別,建立於堆中,需要使用關鍵字new。
3、在c#中通過例項訪問靜態方法或成員變數是不合法的,會生成編譯器錯誤。但是我們可以通過宣告他們的類的名字來發訪問靜態成員。
4、c#派生類中,沒有私有或者保護繼承。關於這一點c++程式設計師注意了。
5、c#多型性,c++程式設計師注意,必須顯式用關鍵自override標記重新定義了虛方法的方法宣告。
6、抽象類與密封類,抽象類用來被派生,並為其子類提供遵循模版;而密封類則完全不允許被派生。抽象類關鍵字是abstract;密封類關鍵字為sealed
7、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、引數傳入機制
14、c#中使用陣列要注意兩件事情:陣列名稱不可置於中括號前方;宣告陣列變數時,不能夠指定陣列的大小。
15、類
c#的成員訪問修飾符包含以下幾種:
public
任何外部的類都可以不受限制的訪問這個類的方法和資料成員。
private
類中的所有方法與資料成員只能在此類中使用,外部無法訪問。
protected
除了讓本身的類可以使用之外,任何繼承自此類的子類都可以訪問。
internal
protected internal
只限定目前的專案,或是繼承自此類的成員才可以訪問。
結構與類的差異:
16、值型別與引用型別之間的互換稱為boxing與unboxing
17、在c#中,物件都是使用new保留字建立的,建立物件時分兩個步驟:
一、向系統要求記憶體。
二、呼叫構造器進行初始化。
18、c#中多型性,虛擬方法用來指明擴充套件類可以改寫基礎類方法的實現部分。多型性用override、new來實現,在c++中用virtual來實現。
override方法則是應用在擴充套件類當中,可使用override保留字指明欲改寫基礎類的virtual成員之實現部分。換言之,virtual方法是在基礎類中定義的,而override是在擴充套件類中定義的。
方法宣告前加上了virtual 修飾符,我們稱之為虛方法,反之為非虛。使用了virtual 修飾符後,不允許再有static, abstract, 或override 修飾符。
19、介面(inte***ce)和類(class)非常相似,唯一的不同點在於介面中不包含任何實現程式**。注意:定義在介面中的方法隱含都是屬於public,因此不能夠在方法之前加public修飾符。
class b
}class d : b
public override void foo () {}
class n : d
public new void foo () {}
public static void main()
inte***ce imyclass //實現imyclass中的fun()方法
void fun(int arg)
//還允許在繼承的同時加入介面的實現宣告
如 public class myclass2 : baseclass, imyclass //繼承baseclass並且實現imyclass
注意:介面本身不提供所定義的成員的實現,它僅僅說明這些成員,這些成員必須依靠實現介面的類或其他介面的支援。(借腹生子)(實現介面的成員時不能加任何訪問限制符。)
同一介面在不同類中的實現可以不同。
隱式實現介面成員時,需要在成員宣告起始處加上訪問修飾符(public, private,protected等),此修飾符與介面宣告的訪問修飾符相同。並且隱式宣告的介面成員可以通過類或者介面的例項呼叫,而顯示宣告的不能通過類例項呼叫,只能通過介面例項呼叫(顯示宣告實現介面成員時不需要加訪問修飾符)。
49.在c#中struct中成員和class成員預設的訪問許可權都是private;而在c++中struct的成員預設為public,而class中成員預設為private。
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...