C#基礎教程(五) Null&&""&&Dispose()

平時敲代碼中,經常碰到標題中的知識點,很模糊,現在進行梳理下:

Section One

"":被賦值爲“”的字符串變量,會在棧上保存一個地址(佔4個字節),該地址會指向 同時在堆上分配一個長度爲0的內存空間(存放字符串的值)。

null:被賦值爲null的變量,會在棧上保存一個地址(佔4個字節),該地址不會指向堆上的任何內存空間(1、初始賦值時不分配內存;2、將原來所指的內存空間變爲不可達)。

1、String.Empty 和 ""基本相同,String.Empty只是一種在語法上對""的優化;

2、String.Empty("") 和null的區別是,前者地址指向某一個堆中某一內存空間,而後者不指向堆上的任何內存空間。

Section Two

Dispose()方法實際上是銷燬了對象的實例,但是該對象變量仍然指向這塊被銷燬的內存地址上!而只要有所指向,它就絕不等於null

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