嗨,我在使用C#Object Initializer
public class Invoice
{
public decimal GrossSum { get; set; }
public decimal GrossSumComp { get; set; }
}
public class ABC()
{
public Invoice Invoice {get;set;}
public ABC(decimal grossSum)
{
Invoice=new Invoice()
{
GrossSum=grossSum,
GrossSumComp=**GrossSum**
};
}
}
而且我看到我们无法将一个属性的值分配给其中的另一个属性,就像上面我尝试将GrossSum分配给GrossSumComp一样,这里出现编译错误。只是想知道为什么它不允许这样做。任何帮助都将高度公开。
最佳答案
因为就是这样指定的。第二行中的GrossSum
是对名为GrossSum
的变量的引用,而不是正在初始化的对象的属性。
解释埃里克·利珀特。对于要实现的功能,它确实是
建议的
分析
设计的
已实施
经过测试
这些都产生了成本,因此它们应该增加价值以匹配成本,并且最好超过成本。
如果对该功能有一个简单的解决方法,则可能是成本可能(大大)高于潜在价值。
在您的情况下,您可以简单地分配grossSum
而不是GrossSum
。这是一个简单的解决方法