自从迁移到 Visual Studio 2022 .net 7 以来,C# 小数设置器不再工作。该值始终设置为 0

问题描述 投票:0回答:1

我有一个调试器的屏幕截图,其中我可以将本地小数设置为该值,并且我在调试器中看到它已设置,但设置器的私有小数变量未设置为该值。这是 VS 2022 的问题吗?无法想象这样的事情。当然,这对我们来说是新行为。

我尝试了舍入,但我检查了最大精度和所有这些,一切都很好。如上所述,我确实尝试将值设置为本地十进制(测试),然后就成功了。但是声明的私有十进制类变量不会被设置,并且具有设置器的公共十进制变量也不会被设置。它仍然是 0。就像我说的,这曾经有效。

c# decimal visual-studio-2022 setter .net-7.0
1个回答
0
投票

您的手表表达式正在访问您的 getter,并且每次通过时您的 getter 都会重新初始化。

如果您希望 getter 在 get 没有值时初始化:

private decimal? _val = null;
public decimal Val
{
    get { _val ??= getValueFromInstance(...); }
    set { _val = value; }
}
© www.soinside.com 2019 - 2024. All rights reserved.