引用类的属性在内部赋值期间未显示

本文关键字:显示 赋值 在内部 属性 引用 | 更新日期: 2023-09-27 17:59:28

我有下面的ItemCountAmount.cs类。

public class ItemCountAmount
{
     public int Count { get; set; }
     public string Amount { get; set; }
}

我在下面的ChartData.cs类中引用它:

public class ChartData
{
    public ChartData()
    {
        Purchase = Stocks = Sales = new ItemCountAmount();
    }
    public string period { get; set; }
    public ItemCountAmount Purchase { get; set; }
    public ItemCountAmount Stocks { get; set; }
    public ItemCountAmount Sales { get; set; }
}

现在,当我尝试为ChartData属性分配值时,它无法识别或可用。编译时异常将发生在VS.中

var model = new ChartData
{
    period = yearMonth,
    Purchase.Count = await purchase.CountAsync(x => x.order_date.Month == mnth && x.order_date.Year == yr),
}

但是Purchase.CountPurchase.Amount在这里没有被识别,如果我尝试将其作为

var model=new ChartData();
model.Purchase.Count = .....;
model.Purchase.Amount = .....;
.......

它工作良好,我的意思是,属性CountAmount被识别。我仍然不明白为什么第一个方法不能从ChartData中引用的ItemCountAmount.cs类中识别属性。有什么具体原因吗?

引用类的属性在内部赋值期间未显示

我不相信C#对象初始化程序支持这种语法,但是,您可以这样做。我不确定这是否会导致Purchase的两个构造和赋值,不过,你可以自己打破这个点,看看。

var model = new ChartData 
               {
                 Purchase = new ItemCountAmount 
                               { 
                                 count = await purchase.CountAsync(x => x.order_date.Month == mnth && x.order_date.Year == yr) 
                               }
               }