如何使用对象属性在ASP.NET MVC中计算新变量

问题描述

我有一个DTO,如下所示:

class Product
{
   public float cost{set;get;}
   public float sellprice{set;get}
}

我有这个viewmodel

public class Myviewmodel
{
   public Product products{set;get}
   public float profit{set;get}
}

问题是我需要从Product属性中计算利润,但我不知道该怎么做。

解决方法

使用带有表达式获取器的属性,如下所示:

public class MyViewModel{
    public MyViewModel( Product product )
    {
        this.Product = product ?? throw new ArgumentNullException(nameof(product));
    }
    public Product Product { get; }
    public Decimal Profit => this.Product.SellPrice - this.Product.Cost;
}

其他反馈:

  • 在C#和.NET中:
    • 提供类型(classstructinterface等)PascalCase名称。
    • 提供专用字段,参数和本地camelCase名称。
    • 提供公共成员(属性,方法)PascalCase名称。
  • 请勿使用floatdouble来表示货币。
  • 您应该致力于使用具有只读属性的不可变类型。
    • 可变状态使您更难以推理应用程序中的数据流。