原文:CoreCLR源碼探索(六) NullReferenceException是如何發生的

NullReferenceException可能是.Net程序員遇到最多的例外了, 這個例外發生的如此頻繁, 以至於人們付出了巨大的努力來使用各種特性和約束試圖防止它發生, 但時至今日它仍然讓很多程序員頭痛, 今天我將講解這個令人頭痛的例外是如何發生的. 可以導致NullReferenceException發生的源代碼 我們先來看看什么樣的代碼可以導致NullReferenceException發 ...

2017-05-24 14:06 12 1860 推薦指數:

查看詳情

CoreCLR源碼探索(二) new是什么

前一篇我們看到了CoreCLR中對Object的定義,這一篇我們將會看CoreCLR中對new的定義和處理 new對於.Net程序員們來說同樣是耳熟能詳的關鍵詞,我們每天都會用到new,然而new究竟是什么? 因為篇幅限制和避免難度跳的太高,這一篇將不會詳細講解以下的內容,請耐心等待后續的文章 ...

Tue Jan 10 03:14:00 CST 2017 20 4313
CoreCLR源碼探索(一) Object是什么

.Net程序員們每天都在和Object在打交道 如果你問一個.Net程序員什么是Object,他可能會信誓旦旦的告訴你"Object還不簡單嗎,就是所有類型的基類" 這個答案是對的,但是不足以說明Object真正是什么 在這篇文章我們將會通過閱讀CoreCLR的源代碼了解Object在內存中 ...

Tue Jan 03 23:09:00 CST 2017 39 6681
CoreCLR源碼探索(七) JIT的工作原理(入門篇)

很多C#的初學者都會有這么一個疑問, .Net程序代碼是如何被機器加載執行的? 最簡單的解答是, C#會通過編譯器(CodeDom, Roslyn)編譯成IL代碼, 然后CLR(.Net Framew ...

Thu Oct 19 01:27:00 CST 2017 22 4997
CoreCLR源碼探索(八) JIT的工作原理(詳解篇)

在上一篇我們對CoreCLR中的JIT有了一個基礎的了解, 這一篇我們將更詳細分析JIT的實現. JIT的實現代碼主要在https://github.com/dotnet/coreclr/tree/master/src/jit下, 要對一個的函數的JIT過程進行詳細分析, 最好的辦法是查看 ...

Sat Oct 28 19:48:00 CST 2017 3 1426
CoreCLR源碼探索(四) GC內存收集器的內部實現 分析篇

在這篇中我將講述GC Collector內部的實現, 這是CoreCLR中除了JIT以外最復雜部分,下面一些概念目前尚未有公開的文檔和書籍講到。 為了分析這部分我花了一個多月的時間,期間也多次向CoreCLR的開發組提問過,我有信心以下內容都是比較准確的,但如果你發現了錯誤或者有疑問的地方請指出 ...

Mon Mar 27 17:50:00 CST 2017 7 2282
CoreCLR源碼探索(五) GC內存收集器的內部實現 調試篇

在上一篇中我分析了CoreCLR中GC的內部處理, 在這一篇我將使用LLDB實際跟蹤CoreCLR中GC,關於如何使用LLDB調試CoreCLR的介紹可以看: 微軟官方的文檔,地址 我在第3篇中的介紹,地址 LLDB官方的入門文檔,地址 源代碼 本篇跟蹤程序的源代碼 ...

Mon Mar 27 23:31:00 CST 2017 5 979
27、初步探索echarts源碼

1、首先發現隨筆中凡是和echarts相關的點擊率都特別高,於是乎就接着寫了echarts因為感覺要轉點擊率   首先聲明我並不是專業做前端的,所以如果有些說得不對的地方,希望前端大神們出來指正 ...

Wed Sep 28 09:09:00 CST 2016 0 4531
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM