私はこのコードを持っています:
Action<A, B> fnUpdate = (someBool) ? (a, b) => a.propOne = b : (a, b) => a.propTwo = d;
三項演算子で割り当てられているという理由だけで、コンパイラがa
andの型を解決できないのはなぜですか? b
額面どおり、非常に簡単に見えます。
私はこのコードを持っています:
Action<A, B> fnUpdate = (someBool) ? (a, b) => a.propOne = b : (a, b) => a.propTwo = d;
三項演算子で割り当てられているという理由だけで、コンパイラがa
andの型を解決できないのはなぜですか? b
額面どおり、非常に簡単に見えます。
C# コンパイラは、ラムダを個別に作成しようとするため、型を明確に判断できません。したがって、期待どおりに動作するようにキャストします....
Action<A, B> fnUpdate = (someBool)
? (Action<A, B> (a, b) => a.propOne = b
: (Action<A, B> (a, b) => a.propTwo = d);
2 つの関数の少なくとも 1 つをキャストする必要があります。
Action<A, B> fnUpdate = someBool
? (Action<A, B>)((a, b) => a.propOne = b)
: (a, b) => a.propTwo = b;