2016-06-07 47 views
-2

如何從兒童獲得價值的父母班級。 我要總結的花price並把它作爲整個花束如何從兒童班級獲得價值

abstract class Bouquet 
{ 
    public List<Flower> _flowers = new List<Flower>(); 
    public List<Flower> Flowers 
    { 
     get { return _flowers; } 
     private set { _flowers = value; } 
    } 
    public decimal Coast { get; set; } 
    public int Count { get; set; } 
    public Bouquet(int c) 
    { 
     this.Count = c; 
     for (int i=0;i< Count; i++){// 
      Coast = Flowers.Sum(flower => flower.price); 
     } 
     this.CreateBouquet(); 
    } 




    //Factory method 
    public abstract void CreateBouquet(); 
} 

class RosesStandard:Bouquet 
{ 
    public RosesStandard(int c) : base(c) 
    { 

    } 
    public override void CreateBouquet() 
    { 
     Flowers.Add(new Rose()); 
    } 


}` 

而且Flower樣子的總和(coast):

public class Flower 
{ 
    public decimal price { get; set; } 

} 

///<summary> 
/// concrete flower 
/// </summary> 
class Rose:Flower 
{ 
    public Rose() 
    { 
     price = 100; 
    } 
}` 

PS對不起我的英文不好)

+2

對你的問題更精確。你瞄準了哪個價值,你想用它做什麼? –

+0

另外,您是否想在創建花束後計算花費?現在,你正在計算「c」次花費,然後在花束中加入鮮花。將括號放在您要for循環中重複的語句中。 –

+0

更新問題 – Fel

回答

0

你的代碼有一些問題。主要是雖然我認爲你過於複雜的情況。請參閱下面的摘要,可能會爲您簡化它: _flowers應該是私人的不公開。 Bouquet的構造函數需要計算您嘗試計算成本的數量,但它顯然會爲0,因爲沒有花。 this.CreateBouquet應該被刪除,但我不知道我明白爲什麼它在那裏。但我相信它不會達到你期望的效果。請參閱下面的內容,看看是否有助於您進一步瞭解。

abstract class Bouquet 
    { 
     private List<Flower> _flowers = new List<Flower>(); 
     public List<Flower> Flowers 
     { 
      get { return _flowers; } 
      private set { _flowers = value; } 
     } 
     public decimal Cost { get { return _flowers.Sum(p => p.Price); } } 
     public int Count { get { return _flowers.Count(); } } 
     public Bouquet() 
     { 


     } 




     //Factory method 
     public abstract void CreateBouquet(); 
    } 
+0

嗯,當然,_flower應該是私人的。簡單地說,我不知道如何總結bouquete中的所有花朵,或許你的例子,我會更好,最誠懇的,我用它剎住我的大腦)。也許完整的代碼寫入? – Fel

+0

@Fel你的問題問如何獲得成本。我向你展示瞭如何付出代價。我認爲不應該要求獲得您的項目併爲您解決問題。 – Peter4499

+0

我不想修復我的項目,我只是不太瞭解邏輯,但也許我需要睡覺) – Fel