Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在构造函数内调用方法并将其分配给其中一个参数 公共压缩(字符串描述) { this.artigos_comprados=新列表(); this.descripcao=desc; this.valor=calculavalcompra(this); } 公共浮点数(COMPA COMPA) { 对于(int i=0;i_C#_Class_Methods_Constructor - Fatal编程技术网

C# 在构造函数内调用方法并将其分配给其中一个参数 公共压缩(字符串描述) { this.artigos_comprados=新列表(); this.descripcao=desc; this.valor=calculavalcompra(this); } 公共浮点数(COMPA COMPA) { 对于(int i=0;i

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

是否可以将this.valor分配给CalcularAvolCompra()返回的值?CalculaValorCompra(这)是我失败的尝试之一

我不知道这是否是您需要的:

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;
    }
}