2016-12-05 18 views
-1
public Compra(string desc) 
{ 
    this.artigos_comprados = new List<Artigo>(); 
    this.descricao = desc; 
    this.valor = CalculaValorCompra(this); 
} 

public float CalculaValorCompra(Compra comp) 
{ 
    for (int i = 0; i < comp.artigos_comprados.Count(); i++) 
    { 
     comp.valor += comp.artigos_comprados[i].Preco_unitario * comp.artigos_comprados[i].Quantidade; 
    } 
    return comp.valor; 
} 

是否可以將this.valor賦值給CalculaValorCompra()返回的值? CalculaValorCompra(這)是我的失敗嘗試的一個在構造函數中調用方法並將其分配給其中一個參數

+0

你不能刪除參數'comp'然後使用this'方法裏面'?使方法簽名爲:'CalculaValorCompra()',然後將所有'comp'調用改爲'this':'for(int i = 0; i Quantic

+0

勇敢也是浮動的嗎?我們需要更多信息才能幫助您。另外,你的意思是將方法CalculaValorCompra()分配給構造函數中的this.valor嗎? – Auguste

+0

如果你可以通過你的課程,該方法實際上會設置'valor',但你不能,因爲它還沒有完全構建。你可以改變它來取代列表,並返回聚合值設置爲'valor'。 – juharr

回答

0

我不知道這是否是你所需要的:

public Compra(string desc) 
    { 
     this.artigos_comprados = new List<Artigo>(); 
     this.descricao = desc; 
    } 

    private float Valor 
    { 
     get{ return CalculaValorCompra(this);} 
    } 

    public float CalculaValorCompra(Compra comp) 
    { 
     float valor = 0; 
     for (int i = 0; i < comp.artigos_comprados.Count(); i++) 
     { 
      valor += comp.artigos_comprados[i].Preco_unitario * comp.artigos_comprados[i].Quantidade; 
     } 
     return valor; 
    } 
0

您不需要實例傳遞到相同的方法實例。

解決方案1:

public Compra(string desc) 
{ 
    this.artigos_comprados = new List<Artigo>(); 
    this.descricao = desc; 
    this.valor = CalculaValorCompra(); 
} 

public float CalculaValorCompra() 
{ 
    float valor = 0; 
    for (int i = 0; i < this.artigos_comprados.Count; i++) 
    { 
     valor += this.artigos_comprados[i].Preco_unitario * this.artigos_comprados[i].Quantidade; 
    } 
    return valor; 
} 

解決方案2:

public Compra(string desc) 
{ 
    this.artigos_comprados = new List<Artigo>(); 
    this.descricao = desc; 
    CalculaValorCompra(); 
} 

public void CalculaValorCompra() 
{ 
    this.valor = 0; 
    for (int i = 0; i < this.artigos_comprados.Count; i++) 
    { 
     this.valor += this.artigos_comprados[i].Preco_unitario * this.artigos_comprados[i].Quantidade; 
    } 
} 
相關問題