C# 使用的好处=>;报关员

C# 使用的好处=>;报关员,c#,C#,最近,当我在浏览一个项目源代码时,我遇到了一个如下的语句 public bool isRestricted => false; 有谁能告诉我,使用这种说法的好处是什么。 提前感谢。这是一个很好的表达功能,非常适合具有许多小功能的对象。例如,表示业务规则。它使这些类型的对象保持小型、易于阅读、易于维护和理解。在我看来,说它仅仅是语法上的糖分而不是真正有用是错误的——如果表达体是这样的话,那么语言的其他几个特征也可能被认为是这样,比如属性、自动属性等等。表达式体对计算对象非常有用,请考虑下面

最近,当我在浏览一个项目源代码时,我遇到了一个如下的语句

public bool isRestricted => false;
有谁能告诉我,使用这种说法的好处是什么。
提前感谢。

这是一个很好的表达功能,非常适合具有许多小功能的对象。例如,表示业务规则。它使这些类型的对象保持小型、易于阅读、易于维护和理解。在我看来,说它仅仅是语法上的糖分而不是真正有用是错误的——如果表达体是这样的话,那么语言的其他几个特征也可能被认为是这样,比如属性、自动属性等等。表达式体对计算对象非常有用,请考虑下面的代码:

public class PriceCalculator
{
    public double Price(WomensFashionItem item)
    {
        return item.Cost * 1.2;
    }

    public double Price(MensFashionItem item)
    {
        return item.Cost * 1.33 + 10;
    }

    public double Price(ToyItem item)
    {
        if (item.Source == "Taiwan")
        {
            return item.Cost * 2.2;
        }
        else
        {
            return item.Cost * 1.5;
        }
    }
}
通过使用表达式体,我们可以减少行数,在我看来,在这里更容易显示我们的意图

public class PriceCalculator
{
    public double Price(WomensFashionItem item) => item.Cost * 1.2;
    public double Price(MensFashionItem item) => item.Cost * 1.33 + 10;
    public double Price(ToyItem item) => item.Source == "Taiwan" ? item.Cost * 2.2 : item.Cost * 1.5;
}
因此,从24行代码到6行代码,一眼就能看到所有业务规则,这是非常强大的。我可以很容易地向领域专家或业务负责人展示这些代码,他们应该能够理解正在发生的事情,并能够提供反馈


现在,表达式体可能没有泛型类型系统那么强大,但它们确实可以成为工具箱中的一个很好的工具,用于将一行程序或计算属性转换为易于理解的小成员。

这是一个很好的表达功能,非常适合具有许多小函数的对象。例如,表示业务规则。它使这些类型的对象保持小型、易于阅读、易于维护和理解。在我看来,说它仅仅是语法上的糖分而不是真正有用是错误的——如果表达体是这样的话,那么语言的其他几个特征也可能被认为是这样,比如属性、自动属性等等。表达式体对计算对象非常有用,请考虑下面的代码:

public class PriceCalculator
{
    public double Price(WomensFashionItem item)
    {
        return item.Cost * 1.2;
    }

    public double Price(MensFashionItem item)
    {
        return item.Cost * 1.33 + 10;
    }

    public double Price(ToyItem item)
    {
        if (item.Source == "Taiwan")
        {
            return item.Cost * 2.2;
        }
        else
        {
            return item.Cost * 1.5;
        }
    }
}
通过使用表达式体,我们可以减少行数,在我看来,在这里更容易显示我们的意图

public class PriceCalculator
{
    public double Price(WomensFashionItem item) => item.Cost * 1.2;
    public double Price(MensFashionItem item) => item.Cost * 1.33 + 10;
    public double Price(ToyItem item) => item.Source == "Taiwan" ? item.Cost * 2.2 : item.Cost * 1.5;
}
因此,从24行代码到6行代码,一眼就能看到所有业务规则,这是非常强大的。我可以很容易地向领域专家或业务负责人展示这些代码,他们应该能够理解正在发生的事情,并能够提供反馈


现在,表达式体可能没有泛型类型系统那么强大,但它们确实可以成为工具箱中的一个很好的工具,用于将一行程序或计算属性转换为小的、易于理解的成员。

这只是
public bool isRestricted{get{return false;}上的语法糖分
它提供了更紧凑和简化的结构,解释了基本思想或逻辑。因此,这样做没有其他额外的特殊性。它仅仅是公共bool上的语法糖分受限制{get{return false;}}它提供了更紧凑和简化的结构,解释了基本思想或逻辑。因此,公平地说,这样做没有其他额外的特长。最后一条语句本可以在第一段代码中简化:)此外,我将使用=>item.Cost*(item.Source==“Taiwan”?2.2:1.5):)您可以在第一段代码中使用条件运算符,这是对的,但我使用了if-else以使差异更加清楚,因为条件运算符本质上是一个表达式。在您最后的评论中,您当然可以从条件中返回因子,但在这里我实际上更喜欢显式返回计算,至少对于这样的业务逻辑对象,我在这里再次选择clarity,但原因不同。:)公平地说。最后一条语句本可以在第一段代码中简化:)此外,我将使用=>item.Cost*(item.Source==“Taiwan”?2.2:1.5):)您可以在第一段代码中使用条件运算符,这是对的,但我使用了if-else以使差异更加清楚,因为条件运算符本质上是一个表达式。在您最后的评论中,您当然可以从条件中返回因子,但在这里我实际上更喜欢显式返回计算,至少对于这样的业务逻辑对象,我在这里再次选择clarity,但原因不同。:)