なぜ以下は推測に失敗するのR
ですか?
static R Foo<R>(Func<Action<R>, R> call) { ... }
ほぼ「同じ」ですが、機能します。
static R Foo<R>(Func<Action, R> call) { ... }
使用法:
var i = Foo(ec => -1);
コンパイルするために最初のサンプルを「呼び出す必要がある」方法:
var i = Foo<int>(ec => -1);
- また -
var i = Foo((Action<int> ec) => -1);
考え:2番目のスニペットに見られるようR
に、「ラムダ」のリターンタイプによってすでに決定されています。なぜ同じことが最初に当てはまらないのですか?ec
(これは別のコンパイラのヒントになるはずです)を使用しても、推測に失敗します。