C# 在构造函数内调用方法并将其分配给其中一个参数 公共压缩(字符串描述) { this.artigos_comprados=新列表(); this.descripcao=desc; this.valor=calculavalcompra(this); } 公共浮点数(COMPA COMPA) { 对于(int i=0;i
是否可以将this.valor分配给CalcularAvolCompra()返回的值?CalculaValorCompra(这)是我失败的尝试之一我不知道这是否是您需要的:C# 在构造函数内调用方法并将其分配给其中一个参数 公共压缩(字符串描述) { this.artigos_comprados=新列表(); this.descripcao=desc; this.valor=calculavalcompra(this); } 公共浮点数(COMPA COMPA) { 对于(int i=0;i,c#,class,methods,constructor,C#,Class,Methods,Constructor,是否可以将this.valor分配给CalcularAvolCompra()返回的值?CalculaValorCompra(这)是我失败的尝试之一我不知道这是否是您需要的: public Compra(string desc) { this.artigos_comprados = new List<Artigo>(); this.descricao = desc; this.valor = CalculaValorCompra(this); } public
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.artigos_comprados=新列表();
this.descripcao=desc;
}
私人浮动英勇
{
获取{return calculavalocmpra(this);}
}
公共浮点数(COMPA COMPA)
{
浮动幅度=0;
对于(int i=0;i
不需要将实例传递给同一实例的方法
解决方案1:
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;
}
公共压缩(字符串描述)
{
this.artigos_comprados=新列表();
this.descripcao=desc;
this.valor=calculavalcompra();
}
公共浮标
{
浮动幅度=0;
for(int i=0;i
解决方案2:
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;
}
公共压缩(字符串描述)
{
this.artigos_comprados=新列表();
this.descripcao=desc;
加尔各答();
}
公共空间
{
这个值为0;
for(int i=0;i
是否可以删除参数comp
,然后在方法中使用此
?将方法签名设置为this:CalcularAvolCompra()
,然后将所有comp
调用更改为this
:for(int i=0;i
,this.valor+=this.artigos_compados[i]…
。考虑到对象(this
)甚至还没有创建完成,在构造函数中传递this
肯定是不可能的。valor float也是吗?我们需要更多的信息来帮助你。另外,您的意思是将CalculaValorCompra()方法分配给构造函数中的this.valor吗?如果您可以传入类,该方法实际上会设置valor
,但您不能,因为它尚未完全构造。您可以将其更改为获取列表,并返回聚合值以设置为valor
。getter和setter都做得很好,因此valor是一个浮点值,是的,我尝试了您的建议Quantic,但它仍然不起作用。
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;
}
}