首页 > 解决方案 > 如何避免此代码中的堆栈溢出异常?

问题描述

我进入StackOverflowException了我的代码

 public int Movie_ID
 {
     set
     {
         if (value == 0)
         {
             throw new Exception("value cannot be empty");
         }

         Movie_ID = value;
     }
     get
     {
         return Movie_ID;
     }
 }

引发了“System.StackOverflowException”类型的异常。”}

标签: c#

解决方案


你的 get 不断地递归调用自己。您需要创建一个支持字段并返回该值,而不是再次调用该属性。例如:

private int _movieId;

public int Movie_ID
 {
     set
     {
         if (value == 0)
         {
             throw new Exception("value cannot be empty");
         }

         _movieId = value;
     }
     get
     {
         return _movieId;
     }
 }

推荐阅读