尝试在另一个类中添加来自单独类的类值

时间:2019-07-19 08:25:41

标签: c#

我总共有三节课。其中两个具有构造函数,这些构造函数的余额属性类型为十进制。我想要做的是获取这两个对象,并在另一个类的构造函数中调用它们并添加它们的值,但是IDE出于某些原因拒绝这样做。

代码如下:

class Class1{

    private decimal value; 

    Public Class1(decimal value){
         this.value = value;
    }

    public decimal Value{get; set;}
}

class Class2{

    private decimal value;

    Public Class2(decimal value){
         this.value = value;
    }

    public decimal Value{get; set;}

}

class Class3{

    public Class1 class1;
    public Class2 class2;
    private decimal value;

    public Class3(Class1 class1, Class2 class2){
    this.value = class1.Value + class2.Value; 
    }

}

一直在说这是不可能的。现在不在工作,所以我没有更具体的错误信息。

2 个答案:

答案 0 :(得分:1)

首先,更改

  

公共

  

公开

第二,如果您使用{get;set;}check for more info),则不需要拥有私有属性。就您而言,public decimal Value从未使用过,您仅使用了private decimal value

然后,在调用Class3构造函数时,您仅访问始终为0的public decimal Value

我建议以下内容:

https://dotnetfiddle.net/nspSGs

class Class1{
    public decimal Value{get;}

    public Class1(decimal value){
        this.Value = value;
    }  
}

class Class2{
    public decimal Value{get; set;}

    public Class2(decimal value){
        this.Value = value;
    }
}

class Class3{
    public Class1 class1;
    public Class2 class2;
    public decimal Value { get; };

    public Class3(Class1 class1, Class2 class2){
        this.Value = class1.Value + class2.Value; 
    }   
}

答案 1 :(得分:0)

解决错误的方法

 class Class1
{
    public Class1(decimal value)
    {
        this.Value = value;
    }

    public decimal Value { get; }
}

class Class2
{

    public Class2(decimal value)
    {
        this.Value = value;
    }

    public decimal Value { get; }

}

class Class3
{
    private decimal value;

    public Class3(Class1 class1, Class2 class2)
    {
        this.value = class1.Value + class2.Value;
    }

}