我的代码中有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'类型的异常。“}
答案 0 :(得分:6)
您的get不断递归地调用自己。您需要创建一个后备字段并返回该值,而不是再次调用该属性。例如:
private int _movieId;
public int Movie_ID
{
set
{
if (value == 0)
{
throw new Exception("value cannot be empty");
}
_movieId = value;
}
get
{
return _movieId;
}
}
答案 1 :(得分:0)
或者,如果您使用的是C#3.0和更高版本,则可以使用自动属性,该属性会为您创建一个隐藏的后备字段,我建议您例如。
public int Movie_ID{ get; set; }