gpt4 book ai didi

c# - 属性的值应该用方法更新还是在 getter 中确定?

转载 作者:行者123 更新时间:2023-11-30 22:54:35 25 4
gpt4 key购买 nike

只是一个简短的问题,以便了解在使用每次需要更改值时调用的方法更新属性值或仅在 getter 中执行此操作之间是否有更好的做法。

例如这之间:

        public double Balance { get; private set; }

private void UpdateBalance()
{
if (Payments.IsNullOrEmpty())
{
Balance = 0;
}
else
{
double amountSum = 0;
foreach (Payment payment in Payments)
{
amountSum += payment.Amount;
}
Balance = amountSum;
}
}

还有这个:

        public double OtherBalance
{
get
{
if (Payments.IsNullOrEmpty())
return 0;
double amountSum = 0;
foreach (Payment payment in Payments)
{
amountSum += payment.Amount;
}
return amountSum;
}
}

我能想到的唯一区别是性能,因为在第一种情况下,每次我们尝试获取属性值时,getter 都会遍历整个列表。但是,您不必像第二个选项那样每次进行可能影响属性值的更改时都调用 Update 方法。这种差异真的很重要吗?除此之外,还有什么理由选择一个选项而不是另一个选项吗?

提前致谢

最佳答案

在读取balance的第一种方法中你应该再次调用getter,而在第二种方法中根本没有balance,我个人更喜欢second方法,因为它在调用时生成值,因此您可以确保它始终更新并且不需要调用函数然后读取值,因此它更干净并且更可维护

关于c# - 属性的值应该用方法更新还是在 getter 中确定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com