2016-04-01から1ヶ月間の記事一覧
テスト等で、Privateなコンストラクタしか持たないクラスを生成したくなることがある。 コンストラクタが引数を取らない場合、Activatorを利用すれば簡単にできる。 class Test { private Test() { } } var obj = (Test)Activator.CreateInstance(typeof(Tes…
拡張メソッドを利用してインタフェースに実装をもたせる場合、インタフェースが公開しているもの以外の状態は利用できない。 が、ConditionalWeakTableを利用することでそれに近いことが実現できる。 class Parameter { public string str { get; set; } } i…