淺談C#指針問題
花了很長時間的實踐,終于搞清楚了。類或者鏈表等,在指針賦值的時候,會使用新的指針。比如:
Foo a = c; Foo b = new Foo(); Foo a = b;
這種情況下,會把b的指針傳給a,a不再指向c,a以后的操作都會對b生效。
如下情況下:
Foo b = new Foo(); Foo a{get {return b;}}
這種情況下,表示a無法被修改,但是如果你a.bar = 5;的話,那么是可以修改的,為什么呢?因為此時任何針對a的屬性的修改,本質(zhì)上都是對b的修改,只有a = c;是不可以的??梢院唵卫斫鉃閍 = c;是指針的賦值,而a.bar = 5;只是所指對象的屬性發(fā)生改變。
綜上所述:
如果你希望a是一個僅指向b的替身,那么就可以后后面這個方法了。好處就是,可以隨意修改a的屬性,也就是b的屬性,但是a永遠會指向b,不會被篡改。
如果希望多次使用a,那么只能用第一種方法。但是如果搞不清楚用錯的話,會經(jīng)常不小心修改到原始值。
上一篇:詳解C#中使用對象或集合的初始值設(shè)定項初始化的操作
欄 目:C#教程
下一篇:C#怎么給PDF添加背景圖片
本文標(biāo)題:淺談C#指針問題
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6712.html
您可能感興趣的文章
- 01-10http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實不準(zhǔn)確、不
- 01-10分享我在工作中遇到的多線程下導(dǎo)致RCW無法釋放的問題
- 01-10C# 調(diào)用 JavaWebservice服務(wù)遇到的問題匯總
- 01-10淺談C#中簡單的異常引發(fā)與處理操作
- 01-10C#中的數(shù)組作為參數(shù)傳遞所引發(fā)的問題
- 01-10淺談Visual C#進行圖像處理(讀取、保存以及對像素的訪問)
- 01-10vista和win7在windows服務(wù)中交互桌面權(quán)限問題解決方法:穿透Sessi
- 01-10C# webclient中文亂碼問題解決方法
- 01-10C# IsDefined的問題
- 01-10C#用遞歸算法解決經(jīng)典背包問題


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11ajax實現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10C#中split用法實例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05DEDE織夢data目錄下的sessions文件夾有什