2008-12-01から1日間の記事一覧
public class Object { protected internal virtual bool Eq(Object o) { return this == o; } } public static class ObjectExtension { public static bool Equals(this Object self, Object other) { if (self == null && other == null) return true; if…
ってのも出来るのか。Javaのenumよりスマートじゃない気がするけど、これでJavaのenumっぽいこと + null安全が実現できる! public enum SampleEnum { Hoge, Piyo, Foo, Bar } public static class SampleEnumExtension { // enumのToStringは遅いので独自実…
拡張メソッドをクラスとかインターフェイスの拡張として使うなら別だけど、null安全なメソッド*1の提供を目的として使うなら、同じファイルに記述するのがいいんじゃなかろうか。 public sealed class Hoge { ... } public static class HogeExtension { ...…
Effective Java第二版では、 一般的に言えば、publicのインタフェースに、そのインタフェースを使用しているすべてのプログラムを動かなくさせることなく、メソッドを追加することは不可能です。 とあるけど、C#では拡張メソッドを使用することでpublicのイ…