gpt4 book ai didi

c# - 自定义 setter 但自动 getter

转载 作者:行者123 更新时间:2023-12-03 13:27:26 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to avoid stack overflow errors when defining set accessor in C#

(4 个回答)


5年前关闭。




我有一个具有属性的对象,我想为其创建自定义 setter 并保留自动 getter :

public class SomeObject
{
public int SomeProp { get; set; }
public Nullable<short> MyProp
{
get
{
return MyProp;
}
set
{
if (value != null)
{
SomeProp = SomeWork(value);
MyProp = value;
}
}
}
}

问题是我在 getter 上收到 Stackoverflow 错误。我如何实现一个属性,让我保持 getter 原样但只修改 setter?

最佳答案

您需要为您的属性(property)使用支持字段。你得到一个 SO 错误,因为你递归地引用你的 MyProp属性在它自己的 getter 中导致无限递归。

private short? _myProp;

public short? MyProp
{
get
{
return _myProp;
}
set
{
if (value != null)
{
SomeProp = SomeWork(value);
_myProp = value;
}
}
}

关于c# - 自定义 setter 但自动 getter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38858316/

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