Time of Update: 2018-12-07
我想,對於一門高產的語言、或者一個脫離了機器抽象的廣泛使用的平台,除了要有簡潔優雅的文法(當然也有反例),一個良好的基礎類庫是很必要的。而基礎中的基礎,我認為是一個好的string類和一個完善的collection framework。String要注意的地方很多,比如COW與否、immutable與否,帶來的效率或thread safe問題,string pool,rope,StringBuilder,等等等等。偏題了。。這次的重點是總結一下在我的使用經驗內,“集合”這種ADT的支援。。因為。
Time of Update: 2018-12-07
(承上節) .NET Framework攔截機制的設計中,在用戶端和對象之間,存在著多種訊息接收器,這些訊息接收器組成一個鏈表,用戶端的調用對象的過程以及調用返回實行攔截,你可以定製自己的訊息接收器,把它們插入了到鏈表中,來完成你對一個調用的前處理和後處理。那麼調用攔截是如何構架或者說如何?的呢? 在.NET中有兩種調用,一種是跨應用域(App
Time of Update: 2018-12-07
今天終於對筆記本上用7.10插耳機沒聲音外放照樣響的問題忍無可忍,查了半天alsa驅動在acer上的問題無果,花了一個多小時弄個教育網的的源直接升到了8.04。除了開始遇到一點小問題,升級過程出乎意料的順利。升好以後耳機有聲音了,但外放音響和耳機一起響,不過可以分別調音量,基本算解決了。螢幕亮度調整也正常了,而且對我可憐的ATI顯卡和BCM43無線網卡,visual
Time of Update: 2018-12-07
.NET Remoting提供了一個功能強大、高效的處理遠程對象的方法,從結構上而言,.NET Remote對象非常適合通過網路訪問資源,而又無需處理由基於SOAP的WebServices所帶來的難題。.NET Remoting使用起來比Java的RMI簡單,但要比建立Web Service難度大一些。 在本篇文章中,我們將建立一個從資料庫讀入內容的遠程對象。文中還包括了一個忽略資料庫功能的替補對象,以使沒有資料庫可以使用的讀者仍然能夠使用.NET Remoting。
Time of Update: 2018-12-07
assembly, 這裡把它翻譯為配件, 以示和組件(Component)加以區別. 如果您覺得不合適, 請指正! 一個配件有時候是指一個EXE或者DLL檔案, 實際上是一個應用程式(就是指帶有主程式進入點的模組)或者一個庫檔案. 但是配件實際上可以是由一個或者多個檔案組成(dlls, exes, html等等), 代表一組資源, 以及類型的定義和實現的集合. 一個配件也可以包含對其它配件的引用.
Time of Update: 2018-12-07
3 Hello World 4 類 4.3.1 對系統的詞彙建模 需要做如下工作: 1)識別使用者用於描述問題或解決問題的事物。 2)對於每個抽象,識別一個職責集。 3)提供為實現每個類的職責所需的屬性和操作。 4.3.2 對系統中職責的分布建模 抽象出來的類要適中,不要過大過小。 需要如下工作: 1) 識別一組為了完成某些行為而緊密協同工作的類。 2) 對上面的每一個類識別出一組職責。 3)
Time of Update: 2018-12-07
這兩天看了jjhou老師網站上幾篇關於stl的文章,受益匪淺。以前許多關於模板和stl運用的疑問,因為我沒空去看那些大部頭,平時C++用得也不多,一直不能進一步深入。侯老師的幾篇《泛型程式設計(Generic Programming)與 STL》系列文章,讓我很快對stl入門了,強烈推薦: 1. 大局觀:泛型程式設計與 STL 2. 泛型指標(Iterators)與 Traits 技術 3. 泛型容器(Containers)的應用與實作 4. 泛型演算法(Generic
Time of Update: 2018-12-07
這幾天閑的沒事,研究Java的UI,基本把Swing和JSF入了個門,同時也大大加深了對Java的瞭解。以前用.Net多,覺得Java也差不多,嗯現在覺得其實差別還是挺大的。。也明白了除了開發工具以為,作為一個平台,.Net離Java確實還有一段距離。不過有些事情也搞得我挺困惑的,在我眼裡,JSF作為表現層,一點不輸Asp.Net,可是卻不怎麼火,難道是MS的宣傳攻勢太強了?還有J2EE這個平台或者說類庫,真是博大精深啊,大概.Net下的EntLib就是想搞個類似的出來。不過。。為啥到處都把什麼
Time of Update: 2018-12-07
gcc和g++的區別,上網搜了一下、再搜一下,全世界的說法千奇百怪,還是直接看文檔吧。。Quote:“the use of gcc does not add the C++ library.g++ is a program that calls GCC and treats `.c',`.h' and `.i' files as C++ source files instead of C sourcefiles unless -x is used, and automatically
Time of Update: 2018-12-07
這兩天在虛擬機器裡面基本把有奔頭熟悉了。該裝的裝了,平時娛樂基本能代替Windows。開發環境也搭起來了,再用NB寫C和Java,MonoDevelop搞mono。不過最近又看了點VS
Time of Update: 2018-12-07
昨天答應幫別人寫一個Huffman壓縮的作業,照著資料結構書,用典型的帶*lchild、*rchild二叉樹結構來表示產生的Huffman樹,接著要拿Huffman碼出來就鬱悶了,不管遞迴還是非遞迴遍曆,總是不能很好的記錄節點的層次。今天上網在看了些別人的討論,這個樹完全可以放在數組或者鏈表裡面,每個節點加個*parent,要找某個字元的編碼直接先在這個線性結構裡面搜尋到他的節點,再一層層*parent找回去就行了。。腦子不用要鏽掉啊,這種樹的表示大二的時候常用的;還有書要吃透啊,不要上來就翻,
Time of Update: 2018-12-07
一:類在記憶體中的結構每當在堆中建立對象時,每個對象都會獲得兩個與它關聯的附加開銷欄位。第一個開銷欄位MethodTablePointer 包含類型的方法表的記憶體位址。基本上,該指標使獲得有關堆中的任何對象的類型資訊成為可能。實際上,當您在內部調用 System.Object 的 GetType 方法時,該方法會按照對象的 MethodTablePointer 欄位來確定該對象的類型。第二個開銷欄位名為 SyncBlockIndex,它包含 SyncBlock 緩衝的 32
Time of Update: 2018-12-07
不記不行,Greek Alphabet~序號大寫小寫英文注音國際音標中文讀音1 Α α alpha a:lf阿爾法 2 Β β beta bet貝塔 3 Γ γ gamma ga:m伽馬 4 Δ δ delta delt德爾塔 5 Ε ε epsilon ep`silon 伊普西龍 6 Ζ ζ zeta zat截塔 7 Η η eta eit艾塔 8 Θ θ thetθit西塔 9 Ι ι iotaiot約塔 10 Κ κ kappa kap卡帕 11 Λ λ lambda lambd蘭布達 1
Time of Update: 2018-12-07
看到網上的讀寫app.config的代碼,說是寫的時候不能直接用System.Configuration.ConfigurationSettings.AppSettings.Set(AppKey, AppValue),而要把app.config當作XML檔案來寫。試了下確實如此,那這個Set()方法提供來是幹嘛的?原始碼的SelectSingleNode()裡寫的XPath有問題,就隨帶看了點XPath基礎,修改後如下: //讀
Time of Update: 2018-12-07
在我的文章《C#基於介面的編程》中,我談論了使用抽象的介面作為編程範例的各種優點。分離介面和執行過程,現在肯定不是新的思想,實際上它是com編程的核心。也許基於介面的在顯著的特徵是多態性和即時檢查(RTTI).RTTI允許用戶端程式在運行時訪問對象。例如,如果一個對象執行IAthlete介面,一個用戶端程式能夠尋找然後綁定這個介面用於調用和定位另一個介面。
Time of Update: 2018-12-07
居然發現檔案名稱編碼後長度超過155就會不能正確顯示和下載,最後只好找了這樣一個折中的方法,截短了下面是那裡的代碼。後來查看了RFC 2183 中的說明,有一句這樣的NOTE ON PARAMETER VALUE LENGHTS: A short (length <= 78 characters),這個應該是官方的解釋吧,不過我用155在IE中沒有問題,不過可能是IE另外放寬了限制吧。
Time of Update: 2018-12-07
"受管"的概念在.Net環境下被廣泛使用,但是不同地方的含義有點差別: 受管代碼: .Net環境提供了許多核心的運行時服務, 比如異常處理和安全性原則. 為了能使用這些服務, 必須要給運行時環境提供一些資訊, 這種代碼就是受管代碼. 所有的C#, VB.NET, JScript.NET預設都是受管的. 注意VS7 C++不是受管的! 但是編譯器能夠使用命令列選項(/com+)產生受管代碼! 受管資料: 所有由受管代碼管理的資料都是受管資料,
Time of Update: 2018-12-07
今天距離奧運88天,我家鄉地震了,而且還不是一個省在震。有線電話打不通,手機打不通,簡訊很多收不到,搞的下午小緊張了一下。所幸家人都沒事,成都的都沒大恙,但是保險起見今晚家裡人都到一個學校的操場上去睡了。不過離震中近的地方就比較慘了,今晚網上的訊息看就已經pass了幾千人,默哀下。。默哀。今年中國還真多災多難啊,天有雪、地要震、人不和,希望風雨以後能快快見彩虹~!BTW系列,最近輸入的公式多的要吐了,後來發現Word 2007的方程式編輯器改進得不錯,當然有空還是要找個TeX版本來學學。
Time of Update: 2018-12-07
Attribute在攔截機制上的應用 從這一節開始我們討論Attribute的進階應用程式,為此我準備了一個實際的例子:我們有一個訂單處理系統,當一份訂單提交的時候,系統檢查庫 存,如果庫存存量滿足訂單的數量,系統記錄訂單處理記錄,然後更新庫存,如果庫存存量低於訂單的數量,系統做相應的記錄,同時向庫存管理員發送郵件。為了方便示範,我們對例子進行了簡化://Inventory.csusing System;using System.Collections;namespace
Time of Update: 2018-12-07
一旦得到類對象,上表中所列的方法就能被叫來調用reflaction.第一個例子將檢查在CSharpReflectionSamples.Reflect類中的得到方法的資訊。第一塊代碼用來定義類中的每個方法的名字,第二塊代碼將闡述得到方法資訊。向下面所展示的,我們將用一個數組來儲存用GetMethod()方法返回的方法資訊。MethodInfo類包含資訊為方法的名字,不管是否是虛擬,它都是可見的,等等。 namespace CSharpReflectionSamples {