c# - Private Set 属性不保留其新值

标签 c# .net xamarin android-intent xamarin.android

正在为我正在构建的测试应用程序解决一个问题,但我似乎不知道该怎么做。该应用程序本质上是一份问卷,将在使用同一设备的两个不同的人之间传递。

但是,当我有一个 CurrentQuestion 的私有(private) setter 时,该值在发送到新版本的事件时永远不会保持修改状态。它始终保留其原始值 1(但所有其他值都保持修改状态)。但是在调试时,我确实看到属性值增加了 1,只是没有保留。

一旦我删除私有(private) setter ,它就会自行解析并像往常一样递增,但我知道这是不好的做法,所以我想找到正确的方法。

任何帮助或指导将不胜感激,因为我觉得我已经尝试了多种不同的方法但没有运气。

最佳答案

像这样设置自动属性假定对该属性的所有访问和修改都将直接通过该属性本身完成,而不是像您正在使用的方法来增加该属性。根据您在这里所做的事情,我会推荐这种可能的解决方案来解决您的问题。

为该属性设置一个支持字段并在您的 NextQuestion 方法中增加它。

private int _currentQuestion;
public int CurrentQuestion => _currentQuestion;

public void NextQuestion()
{
    _currentQuestion++;
}

关于c# - Private Set 属性不保留其新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56739300/

相关文章:

c# - IdentityServer4 调试消息 AuthenticationScheme : "idsrv" was not authenticated

c# - 多个事件的一个处理程序

.net - Visual Studio 中的错误,拒绝访问路径

c# - 如何从代码 Xamarin 将 TextView 添加到 StackView?

c# - 需要来自苹果的 iOS 崩溃日志的建议

ios - Xamarin 应用程序在设备上启动时崩溃,在模拟器中运行良好

c# - 如何从 C# 中找到事件目录中的用户?

C# 泛型 : Better Way to Match the Generic's Type to Another?

c# - 将字符串转换为 double 时出现奇怪的输出

.net - Visual Studio 2005 与 2008 - 有什么好处?