Time of Update: 2018-12-08
Parallel.For可以算是並行計算的基石了,有了他可以解決90%以上的並行計算問題。當然了,他的實現實在是簡單的不值一提,先發一個我寫的C#實現,下回我們就以它為基礎來講解如何?並行計算。對於已經使用.net 4.0的同學請自動無視該實現。static class Parallel{ public delegate void Kernel(); public delegate void KernelFor(int index);
Time of Update: 2018-12-08
Code CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;namespace _02_01{class Class_02_01{public static void Main(String[] args){short x=32766;ushort y=65534;x++;y++;Console.WriteLine(
Time of Update: 2018-12-08
在本系列的上一篇中,談到了介面和委託文法約束強度的比較,我的結論是介面的文法約束要強於委託。這個話題得到了不少朋友的關注和討論。對此,我在綜合反饋,查閱資料,加上自己的理解的基礎上對介面和委託的關係進行一個小小的總結,並藉此推動本篇的介紹。
Time of Update: 2018-12-08
C++的泛型是基於模板(template)技術的。模板本身並不作為獨立的編譯單元,而是在編譯時間綁定實際參數類型進行模板執行個體化,類似於C語言的宏展開,在運行時並不存在獨立的模板類型。模板對泛型參數的約束是基於操作的文法特徵的,屬於一種靜態duck typing機制,十分靈活。下面的代碼定義了一個泛型Add函數,它對泛型參數T的要求只是支援+運算,並不要求T是某個類的子類,或是實現了某個介面。int, double,
Time of Update: 2018-12-08
話題從今天TerryLee關於MVC的一段代碼說起:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->protected void Application_Start(){ RouteTable.Routes.MapRoute( "Default",
Time of Update: 2018-12-08
很久沒有寫些東西了,發現不寫很久就會忘記一些技巧性的東西,然後又要翻閱一堆堆的代碼區查,還要試,很囧~~~~ 前陣在做一個海外項目時第三方合作廠家一起開發個檔案傳送的東東,NND,他們只會用VC++,居然說COM也不會玩,暈死,讓我玩找視窗的遊戲,這年頭居然還有這樣的人,真的是遠古時代的。 下面是他們給我的VC++調用DEMO,要我用.NET來實現,真的很看得起我 代碼 Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-08
最近在做一些跨語言的開發,需要C#調用VC++開發的動態連結程式庫,以前對VC++沒有太多深入研究,導致這次開發過程遇到了阻礙,下面是從中得到的一些經驗。 1、Byte vs Char在C#中Byte就8 bit,Char是16bit(2 Byte)。而在VC++中是沒有Byte的資料類型,char = signed Char = unsigned char = __int8 長度都是1 Byte。而VC++裡面的wchar_t(2
Time of Update: 2018-12-08
我不應該在這個部落格裡說無關的事情,其實我真正的動機是保證發文章的頻率。我對技術以外的事情,除了一些愚蠢的人類的慾望和心裡反應還在,其實理智上是早已放棄的。最近研發工作很不順利,就越發關注不相干的事情;結果效率就越低。這真是太墮落了。隨著年齡的變大,未來精力肯定會衰退,以我的目標而言,在這麼耽誤時間是絕對要不得的。即便以這個部落格本來可以對其他人的價值而言,我也太浪費了。沒得說就不發文章就好了,何必去提那些根本不值得關心的事情。大家來和我交流也不是為了這些垃圾事情。以後基本上唯寫我自己技術上的總
Time of Update: 2018-12-08
本文將圍繞c#靜態方法和執行個體方法討論一下。針對一些觀點,如:"靜態方法是常駐記憶體", 還有"靜態方法比執行個體方法先裝載",做一個辨析。同時討論下何時用靜態方法,何時用執行個體方法。 前幾日,在微軟的好友發給我一個連結:《靜態方法和執行個體化方法之間的區別你知道了嘛? 歡迎討論!! - 問題最終 ...》,然後說這裡某些觀點需要澄清一下,希望我寫一篇blog。我當時讀了這篇blog.
Time of Update: 2018-12-08
本文將圍繞c#靜態方法和執行個體方法討論一下。針對一些觀點,如:"靜態方法是常駐記憶體", 還有"靜態方法比執行個體方法先裝載",做一個辨析。同時討論下何時用靜態方法,何時用執行個體方法。 前幾日,在微軟的好友發給我一個連結:《靜態方法和執行個體化方法之間的區別你知道了嘛? 歡迎討論!! - 問題最終 ...》,然後說這裡某些觀點需要澄清一下,希望我寫一篇blog。我當時讀了這篇blog.
Time of Update: 2018-12-08
對C# 中堆棧,堆,實值型別,參考型別的理解1,什麼是GC GC的全稱是garbage collection,中文名稱記憶體回收,是.net中對記憶體管理的一種功能。記憶體回收行程跟蹤並回收託管記憶體中分配的對象,定期執行記憶體回收以回收分配給沒有有效引用的對象的記憶體。當使用可用記憶體不能滿足記憶體請求時,GC會自動進行。在進行記憶體回收時,記憶體回收行程回首先搜尋記憶體中的託管對象,然後從Managed
Time of Update: 2018-12-08
跟我學做c#皮膚美化(三)
Time of Update: 2018-12-08
跟我學做c#皮膚美化(二) --Button控制項的製作概述與導航這一篇的QLFUI按鈕.zip 先來看看我們最終要做的(分別對應普通、懸停、按下時的狀態): 下面就開始正式做。首先讓我們建立一個控制項陳列庫項目,命名為QLFUI。 然後將預設的UserControl1重新命名為
Time of Update: 2018-12-08
跟我學做c#皮膚美化(一) --概述與導航
Time of Update: 2018-12-08
實戰dailybuild-cc.net的配置CoolBug的DailyBuild全攻略http://www.cnblogs.com/coolbug/articles/27735.html
Time of Update: 2018-12-08
本人一直以來都是一個實踐主義者,認為在實踐中學習,是最好的學習方式。所以在部落格中添加文章的時候,總是習慣寫一些具體實現的技術知識點。感覺這些東西可以更好的協助那些學習使用.net c#進行開發開發人員。雖然自己的文筆不好,知識的應用也很漸顯,但是本著互相學習的精神,希望在總結的同時可以加深自己的理解,考效自己對各個知識的瞭解程度,共同提高。言歸正傳,我今天要說的就是一個windows 服務結合 Soctket、郵件發送、簡訊發送的小應用。功能不大,但是用到的.net下的知識點很多,
Time of Update: 2018-12-08
一個技術研究工作,需要使用native代碼構建一個dll,並實現其中的函數:HRESULT WMCreateStreamForURL( LPCWSTR pwszURL,BOOL* pfCorrectSource,IStream** ppStream)因為未來項目準備使用C#編程,所以很自然想到了C++/CLI來實現這個dll,並且將調用轉寄到C#的實現裡。做起來很容易,我用C#實現了一個StreamManager,負責檢查傳入的url並返回相應的IStream實現。這裡環境為VS2005。用C#
Time of Update: 2018-12-08
45.優先選擇強異常安全保證。 Prefer the Strong Exception Guarantee. 強異常保證狀態是指,如果一個操作因為某個異常中斷,程式維持原狀態不改變,不管操作是否完成,都不修改程式的狀態,這裡沒有折衷。強異常保證的好處是,你可以在捕獲異常後更簡單的繼續執行程式。終結器(Finalizers)、Dispose()以及委託目標是特殊的情況,它們中不應該出現因為異常而終止執行的情況。
Time of Update: 2018-12-08
1:用屬性來訪問類的私人成員 Always use properties instead of accessible data members.2:為常量優先選擇readonly而不是const。 Prefer readonly to const. const常量僅限於幾個基本類型,編譯時間綁定;readonly常量在運行時綁定。3:優先選擇is或者as操作符而不是做強制類型轉換. Prefer the is or as operators to
Time of Update: 2018-12-08
30.儘可能實現CLS相容的程式集。 Prefer CLS-Compliant Assemblies。 必須遵從兩個規則:1.所有公用的和受保護的成員上的參數和傳回值的類型都必須是與CLS相容的[assembly:CLSCompliant(true)];2.其它不與CLS相容的公用或者保護成員在其所定義的CLS相容的對象必須存在同義成員(e.g:重載了operator+後,還要再定義一個同義的Add方法,以便在CLS相容的程式集中使用Add方法)。 31.儘可能實現短小簡潔的函數.