C#

BP Study #17での発表のために作成したサンプルコードとその解説

追記: 一部意味不明な箇所を修正公開する機会がないなあと思っていたので。 ※スライド自体はここにあります。 1. パイプラインパターン 以前にもこれは言及したことがあるけど、GoF的なパターンとして確立しているというよりかは、定石だということでパター…

Close() vs Dispose()

ここで Java の話を書いていたけど、.NET 界隈でも「SYSK 53: To Close() or to Dispose()? That is the question…」のような議論が昔からあったらしいということをさっき知った。GotDotNetの掲示板にも関連トピあり。つまりここで問題となっているのは、 メ…

C#の好きでない命名規則

GetEnumerator()の話が出てきたついでに、C#の好きでない命名規則について書いておこうと思います。これもすごく好き嫌いの問題とは思いますが、ファクトリクラスにおいて、Java などである 常に同じインスタンスを返すようなパターンでは getInstance() (専…

P/Invoke (Platform Invoke) などマーシャル属性を持つクラスにはジェネリック型を関連づけられない

これにも昨日からずっとハマってました。次のようなコードで再現します。 using System; using System.Runtime.InteropServices; public class Bar<T> { [DllImport("kernel32.dll")] public static extern void Beep(UInt32 freq, UInt32 duration); } public </t>…