1. 程式人生 > >日常問題總結 二

日常問題總結 二

技術分享 [] 代碼 屬性 微軟雅黑 nop mco euc tps

#int[] arr=new int[0];變量arr本身在棧中創建。

所有的變量本身都保存在棧中。對於是引用類型的數組arr來說,arr變量位於棧上,棧上的這塊空間存儲的是數組在堆中開辟的空間的地址。對於值類型來說,棧上直接保存的是具體的值。

# c#中要在派生類中重新定義基類的虛函數,可以在前面加override,也可以使用new關鍵字顯式隱藏從基類繼承的成員。

# 有兩個類BaseClass和SubClass:

技術分享

下面程序的運行結果為:100,0

技術分享

覆蓋基類成員的兩種方法中,virtual-override只能用於本質為方法的成員,比如屬性、方法、索引器;new還可用與變量。

下面程序的運行結果為0,0

技術分享

因為編譯器進行了早綁定,在編譯時就確定好了item.Value被執行時要調用的方法的地址,因為數組類型為BaseClass,便定位到了BaseClass.Value。為了避免這種情況,可以使用override。

#有兩個重載方法:

技術分享

調用代碼為:

技術分享

結果為:

Usinga params parameters!

Usingtwo int parameters!

Usinga params parameters!

並不會出現語義二義性。

#有文件移動代碼為:

技術分享

文件可以被成功移動,如果從C盤移動,一般情況下會因權限問題而報錯。文件夾名稱是可以有#字符的,不能包含的字符有\/:*?”<>|

技術分享

日常問題總結 二