雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

インスタンスメソッドで null チェック

「 String.IsNullOrEmpty をインスタンスメソッドとして呼び出す」的な話を Twitter 上で見かけたので、拡張メソッドを使ってやってみました。

public static class StringExtensions {
  public static bool IsNullOrEmpty(this string target) {
    return String.IsNullOrEmpty(target);
  }
}

static void Main() {
  string v1 = null;
  string v2 = String.Empty;
  string v3 = @"hoge";

  Console.WriteLine(v1.IsNullOrEmpty());
  Console.WriteLine(v2.IsNullOrEmpty());
  Console.WriteLine(v3.IsNullOrEmpty());
}
True
True
False

これは意外と利用価値あるかも?
ついでに、もうちょっと欲張って↓こんなのも書いてみた。

public static class GenericExtensions {
  public static bool IsNullOrDefault<T>(this T target) {
    return (target == null || target.Equals(default(T)));
  }
}

static void Main() {
  string v1 = null;
  string v2 = String.Empty;
  string v3 = @"hoge";
  int v4 = 0;
  int v5 = default(int);
  int v6 = 765;

  Console.WriteLine(v1.IsNullOrDefault());
  Console.WriteLine(v2.IsNullOrDefault());
  Console.WriteLine(v3.IsNullOrDefault());
  Console.WriteLine(v4.IsNullOrDefault());
  Console.WriteLine(v5.IsNullOrDefault());
  Console.WriteLine(v6.IsNullOrDefault());
}
True
True
False
True
True
False