Ich habe einen C# MVC Web-App auf meiner Arbeit, und es gibt eine Zuordnung direkt innerhalb einer Controller-Klasse geerbt, die wie folgt aussieht:Warum funktioniert "=>" Zuweisung in diesem Fall, aber nicht "="?
public class FooController : Controller
{
private IAuthenticationManager AuthenticationManager => HttpContext.GetOwinContext().Authentication;
}
Visual Studio hebt es mit einem Fehler, so etwas wie „; erwartet ". Aber es kompiliert und läuft gut. Wenn ich das "=>" in eine einfache Zuweisung "=" ändere, markiert es HttpContext mit einem Fehler "Eine Objektreferenz ist für das nicht-statische Feld bla bla bla bla ... erforderlich" und es wird nicht kompiliert.
Also hier ist meine Frage. Warum kompiliert und funktioniert der Operator "=>" richtig? Ich bin neu in C# (kam von Android/iOS-Entwicklung), also, während es einfach genug ist, einige Dinge zu verstehen, verwirrt mich solche Dinge.
Jemand wird Sie weiter erleuchten, aber das '=>' ist eine spezielle Syntax in C# 6.0 eingeführt und es ist und Ausdruck bodied Funktion. Es scheint, dass Ihre Instanz von VS und Ihre Laufzeitumgebung auf verschiedene Versionen abzielen. –
Mögliches Duplikat von [Was ist die => Zuweisung in C# in einer Eigenschaftssignatur] (http://stackoverflow.com/questions/31764532/what-is- die-Zuordnung-in-c-sharp-in-a-Eigenschaft-Signatur) – Filburt
Danke @ CallbackKid Ich werde das untersuchen. – whitaay