如何更改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不应该有副作用。但是如果你坚持,你需要的一切都在文档中。