日常問題總結 二
阿新 • • 發佈:2017-07-23
技術分享 [] 代碼 屬性 微軟雅黑 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盤移動,一般情況下會因權限問題而報錯。文件夾名稱是可以有#字符的,不能包含的字符有\/:*?”<>|
日常問題總結 二