C# Member Properties Recursion?!?!?
I was working on some C# tool today when i came along this piece of code i just wrote.
public IKJointConstraint JointConstraint
{
get { return JointConstraint; }
set { JointConstraint = value;}
}
When i was actually trying to use m_JointConstraint not JointConstraint. What i found interesting is that this piece of could would lead to an infinite recusion loop and considering that the function does nothing in particular, I was surprised the compiler did not find this.
Comments
- Anonymous
September 23, 2004
Wow, cool. I guess you could actually make a recursive accessor actually DO something... that would be even cooler.
sidenote: I'm kinda disappointed at how recursion is one of those super-elegant ideas, but in practice in most cases just steals memory and cpu-cycles. Sigh.
nice find. - Anonymous
September 23, 2004
I think C# actually outputs a warning when you do this in Visual Studio 2005. - Anonymous
September 23, 2004
Ahh I see. I am actually using a special build system but i think it uses the VS 2003 compiler under the hood.
Having written compilers/interpreters in the past, I was wondering why they wren't trapping this as it is something trivial to detect.
Guess they are already on top of that one for the next release :) - Anonymous
September 23, 2004
I've been bit by this several times - there's no warning in vs2003 for infinite recursion in the property getter / setter. So what ends up happening is a stack overflow at runtime. - Anonymous
September 23, 2004
Heh, I got stung by that a couple of days ago. I spent 10 minutes look at the code not understanding why I was getting a stackoverflow. The second after I showed it to a co-worker we both saw it simultaneously. Go figure. - Anonymous
September 23, 2004
I did the same thing a couple days ago, but stepping through it and watching the cursor bounce in and out of the method a couple times did the trick. Glad to hear this has been fixed... - Anonymous
June 17, 2009
PingBack from http://pooltoysite.info/story.php?id=7626