C#2.0 關於new運算符、ref,out參數值

 

1)在.net中我們應將new運算符理解成一個對象進行實例化的調用,而不應理解成分配內存的調用。在堆棧上分配的對象都支持new運算符,這也進一步說明了new不是關於內存分配的,也不是是否有必要進行回收的。

2readonly只能用於字段而不能用於局部變量,只讀類型的字段值只能從構造器中更改,獲知直接在聲明時指定。

3)屬性(property)和方法不允許作爲ref out 參數值使用。

ref out 在內部實現時,需要將參數的內存地址傳遞給目標方法。但是由於屬性可能是沒有支撐字段的虛字段,也有可能是隻讀/只寫的,因此不可能傳遞其基礎存儲的地址。所以,你不可能將屬性作爲ref out 參數值來傳遞。同樣的道理也適用於方法。如果你將一個屬性或者方法作爲refout參數值傳遞,那麼首先必須將值複製到一個變量中,然後傳遞該變量。方法調用結束之後,再將變量賦回屬性。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章