"赋值在这种情况下有效,但 "="无效?-6ren"> "赋值在这种情况下有效,但 "="无效?-我在工作中继承了一个 C# MVC 网络应用程序, Controller 类中直接有一个赋值,如下所示: public class FooController : Controller { p-6ren">
gpt4 book ai didi

c# - 为什么 "=>"赋值在这种情况下有效,但 "="无效?

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:01 25 4
gpt4 key购买 nike

我在工作中继承了一个 C# MVC 网络应用程序, Controller 类中直接有一个赋值,如下所示:

public class FooController : Controller
{
private IAuthenticationManager AuthenticationManager => HttpContext.GetOwinContext().Authentication;
}

Visual Studio 会用错误突出显示它,类似于“;预期”。但它编译并运行得很好。如果我将“=>”更改为简单的赋值“=”,它会突出显示 HttpContext 并显示错误“非静态字段 bla bla bla 需要对象引用......”并且它不会编译。

所以这是我的问题。为什么使用“=>”运算符可以正常编译和工作?我是 C# 的新手(来自 Android/iOS 开发),所以虽然它很容易理解一些东西,但像这样的东西让我感到困惑。

最佳答案

=> 不是赋值。它是 C# 6 中添加的快捷方式、语法糖,称为“表达式体函数成员”。

这与以下内容相同:

private IAuthenticationManager AuthenticationManager
{
get { return HttpContext.GetOwinContext().Authentication; }
}

编辑:添加来自 BradleyDotNET 的评论以澄清答案:

More specifically; it works over assignment because it is returning a method call in a property getter, not trying to assign a method return value to a class member at initialization time (which isn't allowed)

有关详细信息,请参阅 this MSDN article .

关于c# - 为什么 "=>"赋值在这种情况下有效,但 "="无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com