在.net裡面,反射是一個功能強大的工具,但是,這個強大功能背後卻是效能的損失。尤其是頻繁的反射,將降低總體效能。 為了程式啟動並執行更快更好,有必要在頻繁反射的地方添加必要的緩衝,用盡量少的反射,獲得必要的靈活性,而又不降低太多效能。 說到效能,先說一下在.net中的效能排列吧,最快的是非虛方法,然後依次是虛方法、介面方法,委託,反射。前面3個的效能幾乎可以忽略。委託比一般的方法執行要來得慢(可以參考 Why is IComparer an Interface?),而反射,
在Silverlight4裡,添加一個ListBox,在不斷Add了Item之後,超出高的時候,會出現捲軸。為了讓捲軸一直顯示在下面。每Add一條Item,都設定了lbMsg.SelectedIndex = lbMsg.Items.Count - 1;每次都把索引定位到最後一條,可是奇怪的結果是,每次只定位到倒數第二條,最後一條看不見同理問題二:看到圖片,發現單選模式下多個被選中了:來張圖引證下:同樣,增加了:Code highlighting produced by Actipro
GZIP的好處大家都知道,不過一般系統來說頁面不會太大,很多人也沒注意過這玩意兒。前段時間做一個系統用了一個國人開發的JQUERY富用戶端架構DWZ(個人感覺這個架構還是蠻不錯的),類似EXT的AJAX架構,架構的JS加上我自己的真不小。 打算用GZIP來做壓縮,之前在IIS6上做過,這個項目用MVC做,發現在.NET MVC下有更簡單好用的辦法來解決:寫一個ActionFilter來實現GZIP,優點大家用了就知道,呵呵 public class
說到Lambda運算式,幾乎所有人的反應就是Linq,不錯,Lambda運算式的最大用途確實是在Linq,Lambda運算式本身也是為Linq量身定做的。 但是Lambda運算式本身只是一個匿名函數的簡化版,因此,並不是針對Linq的。換而言之,任何匿名函數可以做的事情,Lambda運算式都可以做。就以Windows Form的程式為例子吧:Code highlighting produced by Actipro CodeHighlighter (freeware)http://
SingleTon模式也許是被最廣泛應用的模式,但是,最近看到的幾個SingleTon不得不讓我出一身冷汗。 先來看看標準的反例:C#版Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public static SomeObject GetInstance() { if (_instance == null)