当前位置:  开发笔记 > 编程语言 > 正文

为什么Property Set会抛出StackOverflow异常?

如何解决《为什么PropertySet会抛出StackOverflow异常?》经验,为你挑选了2个好方法。



1> Greg Beech..:

这是因为你递归地调用了属性 - 在set你再次设置属性的情况下,这将无限期地继续,直到你打击堆栈.

您需要一个私有支持字段来保存值,例如

private string firstName;

public string FirstName
{
    get
    {
        return this.firstName;
    }
    set
    {
        this.firstName = value;
    }
}

或者,如果您使用的是C#3.0,则可以使用自动属性,为您创建隐藏的后备字段,例如

public string FirstName { get; set; }



2> Michael Hare..:

您在属性中设置属性名称 - 而不是字段名称.这会更好:

private string m_firstName;

public String firstName;
{
    get
    {
        return m_firstName;
    }
    set
    {
        m_firstName = value;
    }
}

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有