最近覚えたことや知ったこと。
以下、備忘録です。とりとめのない内容ですが、後で少しずつ纏めていこうと思います。
- マネージオブジェクトはマネージリソースであるが、マネージリソースはマネージオブジェクトだけではない。
- .NET で扱う値型オブジェクトや配列等もマネージリソースである。
- アンマネージポインタもマネージリソースである。
- Dispose メソッド内で値型の配列に対し null を設定しても無意味。
この辺りの話は、荒井さんの記事を参考にしてください。
- DataTable.Dispose を実行してもデータは初期化されない。
- DataTable を列も含めて完全に初期化するには Reset メソッドを使う。
DataTable.Dispose の件は全然知らなかった・・・もっと修行せねば!(`・ω・´)
- BitArray をビットフラグに置き換えるには CopyTo メソッドを使う。
ビットフラグはあまり使わないが、BitArray はかなり便利。
- unsafe キーワードを使えば C# でもポインタを使える。
- unsafe を有効にするには、プロジェクトのプロパティ→「ビルド」→「アンセーフコードの許可」にチェックが必要。
- unsafe キーワードを使用した場合でも、マネージオブジェクトのアドレスやサイズを取得したり、マネージ型へのポインタを宣言したりすることはできない。
unsafe は本日初めて実戦で使った。
- .NET Framework 4.0 では IntPtr に加算・減算ができるようになった。
MSDN フォーラムのスレッド IntPtr 型の値を構造体で受け取る で初めて知った。
- VS2005・2008 の場合、T4 (Text Template Transformation Toolkit) を使うには SDK をインストールする必要がある。
- VS2010 の場合、T4 を使うのに SDK は不要、そのまま使える。
- .NET開発テクノロジ入門、近々改訂版が出るらしい。