私はこれを検索しましたが、これまでのところ答えを得るための質問の語り方はわかりませんが、ラムダのネストされたアクションでは何も見つかりません表現。私はラムダ式をパラメータとして渡すことに多くの助けを見つけることができます。パラメータはデリゲートであり、実際には私のコードで多くのことをしています。それは私に問題を与えているネストされたラムダ式です。アクション<アクション<string,int>>とC#のラムダ式
私はタイプ
Action<Action<string,int>> myAction
のプロパティを持つクラスを持っていると私は、ラムダ式でそれを割り当てます。ラムダ式を使わずに、コード内の他の場所にある実際のメソッドを使用して実行できます。私はまた、簡単な何かを行うことができます
myAction = ((a) => { a("a string", 0); });
私はサブアクションと1つのラムダでアクションをasignしたいと思います。何かのように...
myAction = (((s,i)=>{//sub-action body here})=> { //do something here});
しかし、この構文は機能しません。これを行う方法はありますか、または私は事前に自分のメソッドを定義しておかなければいけませんか?
引数を無視し、私は理解していない何をしたいですそれを割り当てるのが好きです。 –
私はなぜそれをすることができないのかについてたくさん考えなければなりませんでした。答えは、パラメータを持たないが、 'myAction'プロパティに格納されているメソッドを呼び出すメソッド(上記には示していません)を呼び出していることです。 myActionは、サブアクションに渡すs&iパラメータを知る必要があります。私がこのmyActionを使用するほとんどの場合、サブアクションは別の場所で定義され、メソッドとして完全に書き出されますが、ここでは2つを定義する必要があり、ラムダ式を使用してその簡潔さを保ち、書き出しを避けることを望んでいます完全な方法。以下のTsayperのソリューションは、私が必要とするものを手に入れているようです。 – RosieC