C#で例えば以下のようなことをしたい
public bool Func<T, U>(T t, U u)
{
return ( t == null || u == null ) ? true : false;
}
これを呼び出す。
Func<object, object>(null, null);
これはtrue
でも評価する値が1個しかない場合あるよね
Func<object, void>(null, void);
ジェネリックにvoidは突っ込めないので、こんな形はできない。
次
public TResult Func<TSource, TResult>(TSource source);
こっちは実在するFuncちゃん
でも戻り値いらない場合あるよね。
Func<int, void>(1);
こんな呼び方はできません。かわりにAction使いなさいってことなんだけど、ラムダ式との相性を考えると戻さないことも本当は選びたい。
Func<int, object>(1, null);
意味なくnullをわたしたりするよりもっとこうエレガントに解決したいんだけどね。