CustomerSegments 中没有set Constraints  的值。

解决方案 »

  1.   

     
    //自己对比代码,就知道原因了
    Console.WriteLine("start");
    List<CustomerSegment> CustomerSegments = new List<CustomerSegment>();
    List<Constraint> Constraints = new List<Constraint>();
    List<Offering> Offerings = new List<Offering>();
     
      var cts=new CustomerSegment("T", 13);
    Constraint C1 = new Constraint("color", "blue");
    Constraint C2 = new Constraint("Engine", 0);
     
    Constraints.Add(C1);
    Constraints.Add(C2);
    cts.Constraints=Constraints;
    CustomerSegments.Add(cts);
     
    Console.WriteLine("Add Constraints");
    foreach(CustomerSegment segment in CustomerSegments)
    {
    foreach(Constraint element in segment.Constraints)
    {
    Console.WriteLine("Constraint Name "+element.Name+", Value " + element.Value.ToString());
    }
    }
     
    Offerings.Add(new Offering("color", "red"));
    Offerings.Add(new Offering("Engine", 1));
     
    Console.WriteLine("Add Offerings");
     
    foreach(Offering element in Offerings){
    Console.WriteLine("Offering Name "+element.Name+", Value " + element.Value.ToString());
    }
      

  2.   

    输出:start
    Add Constraints
    Constraint Name color, Value blue
    Constraint Name Engine, Value 0
    Add Offerings
    Offering Name color, Value red
    Offering Name Engine, Value 1
      

  3.   

    你到底套了几层啊...
    定义了4个class,一层套一层的,把自己都套晕乎了,真会玩
      

  4.   


    是事先建模用了那么多层。 然后需要实现,就用小程序先试一下
    事实上建模是7层list, 涉及无数class建模不是我建的, 我也不想的
      

  5.   


    多谢版主了! 因为是完全0基础,不知道我理解得对不对,我的代码相当于割裂了Main和CustomerSegment的Constraints, 虽然在Main里输入了Constraint并加入List中了, 但没有传到相关CustomerSegment.Constraints里,导致无法读取,是这样吗?
      

  6.   

    是的,你没有为二者建立关系,所以segment.Constraints为NULL