Unity界隈ではおなじみの
UnityEngine.Objectを継承しているオブジェクトの
if (obj) { ... }
というnullチェックの書き方ですが
こんな感じで演算子のオーバーロードすると実装できます
public class Hoge
{
public static implicit operator bool(Hoge self)
{
return self != null;
}
public static bool operator true(Hoge self)
{
return self != null;
}
public static bool operator false(Hoge self)
{
return self == null;
}
}
public class Main
{
private Hoge hoge;
public Main(object[] args)
{
if (hoge) { Console.WriteLine(hoge.ToString()); }
}
}