私は私の仕事でC#MVCのWebアプリを継承しましたし、直接、次のようになり、コントローラクラスの内部の割り当てがあります:この場合、 "=>"割り当ては動作しますが、 "="は動作しません。
public class FooController : Controller
{
private IAuthenticationManager AuthenticationManager => HttpContext.GetOwinContext().Authentication;
}
Visual Studioは、エラーで「のようなものを、それを強調し、期待"しかし、それはコンパイルされ、うまく動作します。 "=>"を単純な代入 "="に変更すると、HttpContextに "静的でないフィールドbla bla bla ...のオブジェクト参照が必要です"というエラーが表示され、コンパイルされません。
ここに私の質問があります。なぜ "=>"演算子をコンパイルして正しく動作させるのですか?私はC#(Android/iOS開発から来たもの)が新しくなっているので、いくつかのことを理解するのは簡単ですが、このようなことは私には難解です。
誰かがさらにあなたを啓発しますが、 '=>'はc#6.0で導入された特別な構文であり、それは式本体の機能です。あなたのVSのインスタンスのように聞こえ、あなたのランタイム環境は異なるバージョンをターゲットにしています –
[C#でのプロパティのシグニチャとは何ですか?]の可能な複製(http://stackoverflow.com/questions/31764532/what-is- c-assignment-in-a-property-signature) – Filburt
ありがとう@CallbackKid私はそれを調べます。 – whitaay