内部分配期间未显示引用类的属性

时间:2016-07-30 14:25:16

标签: c# asp.net-mvc c#-4.0

我在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。我仍然没有理解为什么第一种方法无法识别ItemCountAmount.cs中引用的ChartData类的属性。有什么具体原因吗?

1 个答案:

答案 0 :(得分:1)

我不相信C#对象初始化程序支持该语法,但是,您可以这样做。我不确定这是否会导致Purchase的两个结构和分配,但你可以自己打破并看到它。

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