我正在使用DevExpress XAF框架。
我有一个包含大量Persistent Alias属性的类,它对属性做了一些计算。下面是我的代码示例:
[PersistentAlias("ShortTermDebt + LongTermDebt / EquityTotal")]
public decimal DebtEquity
{
get
{
return decimal.Parse(EvaluateAlias("DebtEquity").ToString());
}
}我尝试将属性设置为=1
return DebtEquity = 1;但这只是在保存时将属性重置为1。
我尝试将Server中每个属性的默认值设置为1。但这也不起作用。
基本上,我有一个Detailview,上面有大量的计算。当我想要创建一个新的细节视图时,我会得到一个DivideByZeroException,因为一个新的细节视图/对象不会有任何值。有什么办法能让我避开这件事吗?
发布于 2015-02-03 21:20:26
如果您可以获得EquityTotal的值,那么您可以首先检查它的零值,否则就可以捕获异常。
首先检查值的示例:
[PersistentAlias("ShortTermDebt + LongTermDebt / EquityTotal")]
public decimal DebtEquity
{
get
{
if (EquityTotal == 0) return 0; // return 0 or whatever number you want when EquityTotal is equal to zero
return decimal.Parse(EvaluateAlias("DebtEquity").ToString());
}
}具有catch异常的示例:
[PersistentAlias("ShortTermDebt + LongTermDebt / EquityTotal")]
public decimal DebtEquity
{
get
{
try
{
return decimal.Parse(EvaluateAlias("DebtEquity").ToString());
}
catch (DivideByZeroException)
{
return 0; // return 0 or whatever number you want when EquityTotal is equal to zero
}
}
}发布于 2021-01-23 01:27:49
作为使用纯标准语言语法的替代方法,您可以使用:
[PersistentAlias("Iif(EquityTotal > 0,ShortTermDebt+LongTermDebt/EquityTotal, 0)")]
public decimal DebtEquity
{
get => Convert.ToDecimal(EvaluateAlias(nameof(DebtEquity)))
}https://stackoverflow.com/questions/28308739
复制相似问题