へ>言語バージョンセットこれは動作しません。指定された。 OnAction
がメソッドグループとして使用されます。 OnAction
の種類が「メソッド・グループ」で、潜在的にので、コンパイラはそれを推測することはできませんOnAction
の複数のオーバーロードがあるかもしれません:
public void M()
{
var item = Console.Read();
Func<object, object> ok = OnAction; // will work
Func<object, object> handler =
item == 1 ? OnAction : throw new Exception(); // will not work
}
public static Object OnAction(object y)
{
return "";
}
はそれを修正するために、私たちが行う必要があるのはとてもメソッドグループの署名を指定しています
Func<object, object> handler =
item == 1 ? (Func<object, object>)OnAction : throw new Exception();
は、だからあなたの問題を解決するために、私はSelectionChanged
が何であるかわからないが、あなたはその署名を提供する必要があり、それは問題を修正します:コンパイラは、正確にどの1知っています。
このエラーはC#7.0に固有ではありません。 の後ろのバージョンでも、式が同じエラーを生成します。
<== Fiddle Me ==>
これはラムダではありません。 – SLaks
プロジェクトのコンパイルをC#7でコンパイルするように設定しましたか? –
@ S.Petrosov何を意味するのか分かりません。 VS 2017を使用しています。 – HappyNomad