Time of Update: 2018-12-07
也許在某些場合下我們想知道自己的某個方法是被誰(哪個方法)調用的?比如下面的例子: /**//// <summary> /// 正常方法 /// </summary> static void Method1() { DisabledObsoleteMethod(); } /**//// <summary> /// 到期方法
Time of Update: 2018-12-07
返回目錄 Lidin Serge是一位俄羅斯裔的加拿大人,從事了20年軟體開發工作,他工作過的程式設計語言和平台之多自己都已經記不清楚了,從事過的領域更是多種多樣。從天體物理學模型到工業過程模擬,以及金融系統中的交易處理。最近幾年中,他供職於Microsoft的.NET公用語言運行環境組,負責設計和開發了IL Disassembler、中繼資料驗證程式和執行引擎中的運行時中繼資料驗證。現在,Serge任職於Microsoft Phoenix小組,開發新一代代碼產生和轉換的架構。
Time of Update: 2018-12-07
(聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查)
Time of Update: 2018-12-07
Lambda運算式是一個匿名的方法,在開發期我們是不知道其方法名是什麼的,所以我們要怎麼遞迴調用呢?如果你看過我這文章《讓您知道您的方法是被何“人”調用 》的話,你應該會“啊哈”的拍一下頭腦,思路就出來了,沒錯!!就是直接用StackFrame擷取當前執行的方法,然後直接Invoke即可。範例程式碼: class Test { /**//// <summary> /// /// </summary> /
Time of Update: 2018-12-07
(聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查) 這篇文章我們來學習System.Reflection,.net中反射的核心類.先來看圖: 前面的文章,我們說過.net的中繼資料可以完整地描述類型,那麼通過System.Reflection,可以在運行時發現類型格式,我們來看一下中繼資料: 原始碼: Code highlighting produced by Actipro
Time of Update: 2018-12-07
(聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查)
Time of Update: 2018-12-07
剛才看了細說Convert和Parse到底那個效率高!一文,覺得有些問題。如果我們要分析他們的效率問題,單純從代碼看,其實差別是微乎其微的,只有當放到調用非常頻繁的時候才能看出真正的效率問題和對系統整體的影響,假設我們需要在一個頻繁被調用的asp.net的webpage上使用,如果你要parse的這個string,你對它的值非常自信,保證可以parse成這個類型(下文假設是最常用的Int32),那沒問題,Parse是最快的,但是當你不確定這個string的值的時候,那用Parse或者Conver
Time of Update: 2018-12-07
(聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查) 在上一篇,我們講解了System.dll,現在我們來看System.IO,要操作IO,就需要,確定儲存媒介,開啟,然後讀取或者寫入,那麼在.Net中這三步是如何的呢?還是老規矩
Time of Update: 2018-12-07
最新一直在瞭解有關事務的內容, 所以想逐步進行下這階段的總結.這是第一次寫博,表達可能不怎麼好,呵呵...1、事務概念: 將多個任務綁定在一起,具有ACID屬性(原子、一致、隔離和持久性)。2、事務類型: 1、本地事務: 限制一個資料來源,由System.Transaction提供的交易管理員管理 2、分散式交易:
Time of Update: 2018-12-07
(聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查) 前面我們學習了.net的運行引擎,知道了Appdomain要承載各種dll,那麼我們就來學習一下最基本的system.dll,這個任何代碼都要引用的大傢伙.還是老規矩,圖解..嘿嘿了 看了圖以後大家應該有一個初步的瞭解了吧,我們來一個一個的學習吧,大家都知道.net中分為實值型別和參考型別,我們來看這兩種類
Time of Update: 2018-12-07
void
Time of Update: 2018-12-07
(聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查) 上一篇我們講解了CIL,CTS,程式集等內容,並且留下了一個問題,就是.net如何跨平台,我們現在就來弄明白這個問題.由於篇幅有限,請大家參照第一篇的圖.按照流程圖我們該講解mscoree.dll了 由相關的.net進程來載入Mscoree.dll,對於相關進程我們在後面講到Winform
Time of Update: 2018-12-07
(聲明:本系列只想給大家介紹.net架構,並不是文法和類的使用的講解,所以只能概括的描述一下所提到的類,如果有疑問可以到MSDN上面去查)
Time of Update: 2018-12-07
受到慣性影響,我們常常把indexer作為一個僅僅按照編號反饋結果的入口。但就如SQL 中的where, 我們其實可以做很多。Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
書接上回 資料結構 : Hash Table [I] 。上篇文章,我們知道了散列函數會使得 Key 發生碰撞衝突。那麼,.NET 的 Hashtable 類是如何解決該問題的呢?很簡單,探測。我們首先利用散列函數 GetHashCode() 取得 Key 的散列值。為了保證該值在數組索引範圍內,讓其與數組大小求模。這樣便得到了 Key 對應的 Value 在數組內的實際位置,即 f(K) = (GetHashCode() & 0x7FFFFFFF) %
Time of Update: 2018-12-07
如何剝離具體動作的具體實現,怎麼說呢,比如:一個人在路上散步,此時遇到朋友時,你會對其說:hello;如果遇到車輛時,你會及時讓開它,以免受傷。。從技術角度來說: Client即是一個情境 Action即是具體執行動作的 FailedEventArgs即是自訂的事件類別
Time of Update: 2018-12-07
至於如何用2008調試原始碼和如何下載原始碼我就不寫了,園子裡的很多達人都說過了。考慮到下載這些原始碼還是比較耗費時間的,所以在此把已經下載好的代碼和園子裡的朋友Share一下。希望能節省園友的一些時間,給大家帶來一些協助。(提取碼是0195356949951031)檔案下載的串連隱藏在一堆廣告中間,要仔細找找。為了能對更多的園友有所協助,佔用首頁一段時間,望dudu見諒。考慮到有哥們不好找下載位置,紅框標出:
Time of Update: 2018-12-07
文章目錄 聲明:資料並行任務並行管道/流水線(合并資料和任務並行)混合方案實現並行 聲明:這篇文章主要想描述一下該怎樣以一種安全和延展性的方式使得程式並行化。在多核的今天,我們可能更加需要思考如何編寫一個良好的並行程式。文中有相當的內容來自《Intel Threading Building Blocks》,雖說它針對 C++ 講解,但原理通用,在跟語言,平台有關聯的時候,樓主會使用 .NET
Time of Update: 2018-12-07
大家都知道,.net寫的程式,都是託管的,何為託管?就是讓“其他的程式”來管理,也解析運行,什麼又在這裡充當“其他程式”呢?這裡大體上說是CLR(通用語言運行時),這隻是大體上的,準確的在底層是怎麼去處理託管程式與作業系統間的關係呢?作業系統上啟動並執行都是進程,這進程是非託管的。現在。我們有一個Demo.exe,他是用.net寫的(這裡與語言無關了,因為編設成程式集後,都成為IL語言了),當然是一個託管理程式。這裡的問題就是怎麼把Demo.exe變成一個進程,運行在作業系統的進程中。這裡就引出
Time of Update: 2018-12-07
C#作為一種純物件導向的話言,為它編寫的整個代碼裡面到處都離不開對象。一個對象的完整的生命週期是從開始分配空間到初始化,到使用,最後是銷毀,使用的資源被回收。要想真正寫出面高品質的代碼,我們就得對這期間每一個階段是怎麼樣一個狀態,framework都做了些什麼,我們又能夠做些什麼都要有些瞭解才行。