C# get set 方法 System.StackOverflowException

我们在使用C#的get和set方法时,偶尔会对属性的值进行处理(当然在阿里巴巴的开发者手册中建议:尽量不要增加业务逻辑,增加排查问题难度

        public bool isFirst
        {
            get
            {
                return pageNum == 1 ? true : false;
            }
            set
            {
                this.isFirst = value;
            }
        }

但是,有时会报 System.StackOverflowException异常,提示深度迭代造成堆栈溢出。

此时的解决办法为:

        private int _pageTotal;
        public int pageTotal 
        {
            get
            {
                _pageTotal = (int)Math.Ceiling((Double)this.rows / this.pageSize);
                return _pageTotal == 0 ? 1 : _pageTotal;
            }
            set
            {
                _pageTotal = value;
            }
        }


你可能感兴趣的:(bug,C#)