.NET Framework
C++にはなかったReflection。 C#になってSerializeなんかで良く活躍するわけですが、 大量のインスタンスをReflectionを使って処理したりすると思いのほか時間がかかります。 そこでReflectionをなんとかして高速化しようというのが本日のエントリ。 NyaRuRu…
とかってネタで適当に何度かにわけて記事書こうかと思ってるわけですが、 だれか知りたい人いるのかな? ちなみに内容は、自分でVisualStudioみたいなUIデザイナを作るよ〜って話。 大雑把に書くとSystem.ComponentModelがらみやらSystem.ComponentMode.Design…
System.ComponentModel.CollectionEditorというクラスがあります。 PropertyEditorでコレクションの編集をするときに使うわけですが、 こいつには単にICollectionを実装したクラスを渡してもだめです。 MSDNには↓のように書かれています。 継承時の注意 この…
Dictionary.Enumerator>とかList.Enumeratorとかは IEnumerator,IEnumerator,IDisposableを実装したstructになっている。 なんで? なんでstructなんだ? ILレベルで見たときにcallvirtしなくてすむからかな?よくわからん。 謎だ。教えてエロイ偉い人!
既存のクラスの型コンバータを動的に拡張または置き換える方法を紹介します。 using System; using System.ComponentMode; using System.Drawing; namespace Test { static class Program { [STAThread] static void Main() { // Colorの型コンバータを動的…
IEnumerable<T>を実装するクラスで、 内部ではTでない別の型Uで保持しておきたいときがあるかも?と思ってちょっと作ってみた。 Genericsを使った実行時型生成をなんとなく使ってみたりしてる。</t>
DesignSurfaceというものがあるらしい。 これを使うとVisualStudioのデザイナみたいなのが簡単に作れる模様。 何かで使いたくなることがあるかもしれないのでメモ。 http://msdn.microsoft.com/msdnmag/issues/06/03/DesignerHosting/default.aspx
わんくま 東京勉強会 #3でεπιστημηさんも話していたgenericsとtemplateの違い。MSDN2に概要のページがあったのでメモ。 Microsoft previous versions of technical documentation | Microsoft Docs
↑の結論の実証コードを書いてみた。 string.emptyと""の参照比較を行うDLLを作る コンソールアプリを作り、最初にstring.Intern( string.Empty )する その後Assembly.LoadFromでDLLをロードして参照比較を行う コンソールアプリのコードは↓ using System; us…
string.Emptyと文字列リテラル""について参照比較をした場合の挙動が、 .NET Framework 1.1と2.0で異なることについて。 MSDNを引っ掻き回してみると、 string.Internに.NET Framework 1.1と2.0では インターンの仕様が変わったよと書いてある。 String.Inte…
CLR Hosting APIに関する資料メモ。 The Managed Hosting API – .NET Security Blog http://msdn.microsoft.com/msdnmag/issues/06/08/CLRInsideOut/default.aspx http://www.gotdotnet.com/team/clr/about_clr_Hosting.aspx Download Visual Studio 2005 Re…