【发布时间】:2021-05-04 12:37:29
【问题描述】:
我有一个必须返回以下输出的 .NET Core API,
{
"TotalValue":200,
"Count":100,
"TypeA":
{
"TotalValue":200,
"Count":100
}
"TypeB":
{
"TotalValue":200,
"Count":100
}
}
我尝试了以下方法来实现这一点,
public interface IValue
{
public int TotalValue { get; set; }
public int Count { get; set; }
}
public class Type : IValue
{
public int TotalValue { get; set; }
public int Count { get; set; }
}
public class Test
{
public int TotalValue
{
get
{
return TypeA?.TotalValue ?? 0 + TypeB?.TotalValue ?? 0;
}
}
public int Count
{
get
{
return TypeA?.Count ?? 0 + TypeB?.Count ?? 0;
}
}
public Type TypeA { get; set; }
public Type TypeB { get; set; }
}
但是根本没有添加值,我觉得即使我让它工作,也可以通过这种方式避免很多重复,有没有更优雅的解决方案来实现这一点?
我必须分别设置TypeA和TypeB的值,TypeA的值被设置但是当我将值设置为TypeB时,总和没有发生。
【问题讨论】:
-
TypeA和TypeB是相同的,因此您可以对这两个属性使用相同的类。 -
是的,我应该想到这一点。仍然没有发生值的总和。另外,当我必须在单独的操作中设置 TypeA 和 TypeB 的值时会发生什么?
-
您必须确保在调用计算属性之前设置了 TypeA 和 TypeB。
-
当我为 TypeA 设置值时,会计算这些值,但下次我为 TypeB 设置时它不会发生
标签: c# asp.net-core poco