メタノート:「this」という単語を検索することはできません。
this
キーワードが必要なASP.NETで奇妙なシナリオに遭遇しました。ただし、コンストラクターで見られるように、ローカル変数とインスタンス変数の間で解決することを目的としたものではありません。
Microsoft.Web.Mvcには、というクラスが含まれておりControllerExtensions
、オーバーロードを使用していRedirectToAction(Expression<Action<TController>> action)
ます。オーバーロードは拡張機能であるため、これは特別なことかもしれません。
RedirectToAction(c => c.Index())
コンパイルされません、そしてそれは言いCannot convert lambda expression to type 'string' because it is not a delegate type
ます。これは、文字列を受け取る最初のオーバーロードを使用していると思われるように聞こえます。
this.RedirectToAction(c => c.Index())
正常にコンパイルされます。this
最初のパラメーターとして渡すことで、静的に呼び出すこともできます。
式を受け取るオーバーロードを探していることをコンパイラが理解できず、それを使用できないのはなぜですか?メソッドはアクションだけでなくアクションの表現をとるので、それが関与している必要があります。Expressions名前空間をまったく理解していないため、このパラメーター型を使用する目的がわかりません。
#1の答えに関係なく、なぜ単に追加するだけで
this
すべてが修正されるのでしょうか。