=>;全局变量中的Lambda表达式

本文关键字:Lambda 表达式 全局变量 gt | 更新日期: 2023-09-27 18:28:20

看起来他正试图将全局"值"设置为构造函数中的字段。

这可能吗?

public class TestLambda
{
    private bool value => inputValue == null;
    public TestLambda(string inputValue)
    {
        // do stuff
    }
}

=>;全局变量中的Lambda表达式

是的,对于Expression体函数成员来说,这是有效的C#语法,假设inputValue是类中的字段。

public class TestLambda
{
    private string inputValue; // necessary
    private bool value => inputValue == null;
    public TestLambda(string inputValue)
    {
        this.inputValue = inputValue;
    }
}

它可以在Roslyns的"C#中的新语言特性"中找到。

这是用于表达式体属性的C#语法。它是一个get-only属性,返回inputValue == null

C#5及以下等效物为

private bool value
{
    get { return inputValue == null; }
}

是的,这是合法的C#6.0语法,前提是TestLambda有一个名为inputValue的字段。

在没有表达式体成员的情况下编写的等效代码如下所示:

public class TestLambda
{
    private string inputValue;
    private bool value
    {
        get { return inputValue == null; }
    }
    public TestLambda(string inputValue)
    {
        this.inputValue = inputValue;
    }
}