戻り値の型が異なる列挙型Funcを持つことは可能ですか?答えは「いいえ」ですが、どのようにこれをサポートできるのでしょうか?私のコードは現在このように見えますが、私は入力型として異なる戻り型を渡すことができなければなりません。私は、前のアクションの戻り値の型が次のアクションへの入力を形成する構造を持っています。異なる戻り値の型を持つ列挙型Func
- アクション1はAを取り、B
- を返すアクション2は、アクション3はCを取り、テスト命令を取り、仮想マシンのD
イム構築何かを返すBを受け取り、C
以下のコードは、私が理想的にはうまく動作するようにしていますが、明らかにベスト・アプローチの考えはありますか?
IEnumerable<Func<Tariff, Tariff> actions = new Func<Tariff, Tariff>[]
{
a = > {CreateStandardTariff();}, //returns typeof(StandardTariff)
a = > {CreateTariff();} //returns typeof(Tariff) takes StandardTariff
};
Test(actions);
...
public void Test<T>(IEnumerable<Func<T,T>> actions) where T : class
{
T current = null;
foreach(Func<T,T> action in actions)
current = action(current);
}
私はあなたが一般的に実装することができますが、入力および出力の種類として