.NET 4.0 New Feature - BigInteger
先前在[C#]BigInteger這篇介紹過在3.5的Framework中,內藏有BigInteger型別可以使用,但在3.5中由於並未開出,所以得透過反射的方式把藏在內部的型別拿來使用,而在.NET 4.0推出後,我們不需兜一大圈就可以直接使用這樣的型別。 ...
先前在[C#]BigInteger這篇介紹過在3.5的Framework中,內藏有BigInteger型別可以使用,但在3.5中由於並未開出,所以得透過反射的方式把藏在內部的型別拿來使用,而在.NET 4.0推出後,我們不需兜一大圈就可以直接使用這樣的型別。 ...
.NET 4.0加入的Enum.TryParse跟Enum.Parse同樣都是用來轉換資料回列舉型別用的方法,相較於Enum.Parse,Enum.TryParse方法少觸發了無法轉換時的例外,因此可以減去省去不必要的例外處理,跟一般其它類別的TryParse一樣,可直接透過方法的回傳值判別是否成功轉換。 ...
以往在使用StringBuilder時,若要重覆使用現有的StringBuilder物件,必需要將StringBuilder的內容清空,然而在StringBuilder類別中並未附有直覺的方法可供直接叫用,因此我們可能需要透過StringBuilder.Remove方法來清空內容。 ...
在研究列舉型別的新成員時,發現在 Enum.Parse中有些之前未注意到的地方,這邊將之整理一下。 ...
在.NET 4.0以前,若有要判斷Flag屬性修飾過的列舉是否含有特定Flag時,我們會將列舉值與Flag去做And運算,判斷做完運算後的值是否等同Flag,像是下面這樣: ...
整理一下自己用來取得CustomAttributes的擴充方法。 ...
有時在撰寫程式為了增加彈性或是便利性,我們可考慮使用Attribute來為類別、方法、欄位、與屬性附加一些資訊。這樣的設計方式在.NET中已經存在許久,這類應用也越來越普及,相信大家就算沒有用過也有看過,像是製作控制項時會用到的Browsable、Description、Category…,做序列化時會用到的XmlIgnore、XmlElement…,許多地方都會用到這樣的小技巧。 ...
有時候在MDI架構下,我們會有需要將子視窗與父視窗工具列或是選單合併的需求。在選單的合併上,MDI架構提供了很簡易的合併方法,只要調整MergeAction與MergeIndex,在切換子視窗時就會自動幫您合併選單。但在工具列的合併上就比較麻煩點,除了一樣要調整MergeAction與MergeIndex外。 ...
最近試著把MDI視窗加上Thumbnail Preview功能,找來找去找不到相關的技術文件,只好硬幹處理,這邊簡單記錄一下簡陋的作法。 ...
記得之前有在使用XML序列化程式產生器工具加速XML序列化這篇有做一些Xml序列化效能上的比較,使用Xml序列化組件內所產生的Serialzer來做序列化動作效能最佳。但是這樣的方法使用上十分的麻煩,必需先寫好自己的組件,建置後產生對應的Xml序列化組件,再回過頭來修改我們自己的程式,把Xml序列化組件加入參考,用Xml序列化組件內所產生的Serialzer取代本來的XmlSerializer。搞到最後想必像我一樣懶的都怯步了,乾脆在檔案系統中放置Xml序列化組件加點小速度就好。 但明知可以加速卻不加速,心理難免有所不快。因此興起了用反射取用XML序列化組件內的Serializer的念頭,這邊簡單記錄一下實作心得。 ...