【发布时间】:2010-03-07 22:19:29
【问题描述】:
周五,我在处理应用程序的公共 cmets 部分时遇到堆栈溢出错误,这让我很困惑,所以我想我会寻求帮助。而且使用“堆栈溢出”这个表达式搜索网络有点弄巧成拙!
在发送要添加到数据库的类实例之前,我想对类中字段的 set 语句执行 HtmlEncode:
public class Feedback
{
public Feedback() { }
public string FeedbackComment
{
get { return FeedbackComment; }
set {System.Web.HttpUtility.HtmlEncode(value); }
}
// other fields
// methods
}
这导致 StackOverflow 错误,我已通过将代码更改为如下所示来修复错误:
public class Feedback
{
public Feedback() { }
private string feedbackComment;
public string FeedbackComment
{
get { return feedbackComment; }
set { feedbackComment = System.Web.HttpUtility.HtmlEncode(value); }
}
// other fields
// methods
}
但我只是想解释一下为什么第一个 get/set 语句如此递归以至于它们导致堆栈溢出,但是当恢复代码看起来更像 c#2.0 工作时?这可以通过更短的语法来实现吗?如果可以,如何实现?
这是我关于 SO 的第一个问题 - 请尽量保持温和!
【问题讨论】:
-
我不禁认为这个网站是这个问题的完美场所
-
这么多正确答案 - 感谢所有帮助。