ここに私の質問の文脈があります:
一般的な手法は、メソッドのパラメーターをデリゲートではなく Lambda 式として宣言することです。これは、メソッドが式を調べて、デリゲート インスタンスの本体でメソッド呼び出しの名前を見つけるなどの興味深いことを実行できるようにするためです。
問題は、Resharper の intelli-sense 機能の一部が失われることです。メソッドのパラメーターがデリゲートとして宣言されている場合、Resharper は、このメソッドへの呼び出しを記述するときに役立ち、このメソッドに引数値として提供する x => x 構文を使用するように促します。
だから...私の質問に戻って、私は次のことをしたいと思います:
MethodThatTakesDelegate(s => s.Length);
}
private void MethodThatTakesDelegate(Func<string, object> func)
{
//convert func into expression
//Expression<Func<string, object>> expr = "code I need to write"
MethodThatTakesExpression(expr);
}
private void MethodThatTakesExpression(Expression<Func<string, object>> expr)
{
//code here to determine the name of the property called against string (ie the Length)
}