Unity Resolver 的这个 lambda 表达式是做什么的

What is this lambda expression with Unity Resolver doing

翻阅别人的代码我发现了这行代码:

     protected IDirectIp Iridium => _resolver.Resolve<IDirectIp>();

看到 lambda (=>) 而不是等号 (=),我感到很困惑。依赖注入库是Unity,这个语法是Unity特有的吗?

谁能解释一下这个表达式的作用?

这是在 C# 6.0 中添加的快捷方式,用于定义只读 属性

get 主体

https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6#expression-bodies-on-property-like-function-members

这是一个表达式主体函数。这是在 c# 6.0 中添加的,相当于

protected IDirectIp Iridium
{
    get { return _resolver.Resolve<IDirectIp>(); }
}

它是来自 C# 6.0 的 expression bodied 成员。

只是 shorthand 属性 getter returns => 之后的所有内容。