最近覚えたことや知ったこと。


以下、備忘録です。とりとめのない内容ですが、後で少しずつ纏めていこうと思います。

  • マネージオブジェクトはマネージリソースであるが、マネージリソースはマネージオブジェクトだけではない。
  • .NET で扱う値型オブジェクトや配列等もマネージリソースである。
  • アンマネージポインタもマネージリソースである。
  • Dispose メソッド内で値型の配列に対し null を設定しても無意味。

この辺りの話は、荒井さんの記事を参考にしてください。

  • DataTable.Dispose を実行してもデータは初期化されない。
  • DataTable を列も含めて完全に初期化するには Reset メソッドを使う。

DataTable.Dispose の件は全然知らなかった・・・もっと修行せねば!(`・ω・´)

  • BitArray をビットフラグに置き換えるには CopyTo メソッドを使う。

ビットフラグはあまり使わないが、BitArray はかなり便利。

  • unsafe キーワードを使えば C# でもポインタを使える。
  • unsafe を有効にするには、プロジェクトのプロパティ→「ビルド」→「アンセーフコードの許可」にチェックが必要。
  • unsafe キーワードを使用した場合でも、マネージオブジェクトのアドレスやサイズを取得したり、マネージ型へのポインタを宣言したりすることはできない。

unsafe は本日初めて実戦で使った。

MSDN フォーラムのスレッド IntPtr 型の値を構造体で受け取る で初めて知った。

  • VS2005・2008 の場合、T4 (Text Template Transformation Toolkit) を使うには SDK をインストールする必要がある。
  • VS2010 の場合、T4 を使うのに SDK は不要、そのまま使える。

技術ひろばの勉強会におけるえむナウさんのセッション。
試しに使ってみると、かなり面白い機能である。

技術ひろばの勉強会エバンジェリストの鈴木さんが言ってた。