如何更改C#get,set中返回的值?

如何更改C#get,set中返回的值?,c#,C#,我有一个获取设置值的代码: public static BTN Btns { get => (BTN)App.DB.GetSet(SET.Btns, 2, typeof(BTN)); set => App.DB.UpdSet(SET.Btns, (int)value); } 如何更改此值,以便如果从GetSet返回的值为1,则从get返回的值将为1,并且将调用App.DB.UpdSet(SET.Btns,2)将数据库中的值更改为2 我可以在=>之后使用{}或类似的

我有一个获取设置值的代码:

public static BTN Btns { 
   get => (BTN)App.DB.GetSet(SET.Btns, 2, typeof(BTN)); 
   set => App.DB.UpdSet(SET.Btns, (int)value); 
}
如何更改此值,以便如果从
GetSet
返回的值为1,则从
get
返回的值将为1,并且将调用App.DB.UpdSet(SET.Btns,2)将数据库中的值更改为2


我可以在
=>
之后使用
{}
或类似的东西吗?

首先,如果您的属性值在每次
get
之后都要更改,您可能应该将其更改为方法调用-使事情更加明确

其次,您可以通过将
get
替换为常规的
get
来实现您想要的,如下所示:

public static BTN Btns 
{ 
    get
    {
        var value = (BTN)App.DB.GetSet(SET.Btns, 2, typeof(BTN));

        if ((int)value == 1)
        {
            App.DB.UpdSet(SET.Btns, (int)value + 1);
        }

        return value;
    }
    set
    {
        App.DB.UpdSet(SET.Btns, (int)value);
    }
}

我真的不明白你的意思。我能在=>之后使用{}或类似的东西吗是的,您可以…但是,您确实不应该在获取期间更改值。。。如果你真的必须这样做,我建议你把它从属性改为方法调用——让事情变得更明确。你试过什么?您是否阅读了C语言文档,其中解释了声明属性的语法?我强烈同意反对按你的要求行事的建议;属性getter不应该有副作用。但是如果你坚持,你需要的一切都在文档中。