我总共有三节课。其中两个具有构造函数,这些构造函数的余额属性类型为十进制。我想要做的是获取这两个对象,并在另一个类的构造函数中调用它们并添加它们的值,但是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;
}
}
一直在说这是不可能的。现在不在工作,所以我没有更具体的错误信息。
答案 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;
}
}