【发布时间】:2016-03-22 14:58:16
【问题描述】:
我知道,在这种情况下我可以简单地使用 abs,但我只是好奇:为什么会发生这种情况?
public float maxThrotle{
set { maxThrotle = value < 0 ? -value : value; //this line causes problem
}
get { return maxThrotle; }
}
【问题讨论】:
-
您的 setter 分配了 maxThrotle 属性。它运行分配 maxThrotle 属性的设置器。它运行分配 maxThrotle 属性的设置器。它运行分配 maxThrotle 属性的设置器。它运行分配 maxThrotle 属性的设置器。它运行分配 maxThrotle 属性的设置器。它运行分配 maxThrotle 属性的设置器。它运行分配 maxThrotle 属性的设置器。哪个运行分配 maxThrotle 属性的设置器... Kaboom!
-
您的 getter 读取 maxThrotle 属性。它运行读取 maxThrotle 属性的 getter。它运行读取 maxThrotle 属性的 getter。它运行读取 maxThrotle 属性的 getter。它运行读取 maxThrotle 属性的 getter。它运行读取 maxThrotle 属性的 getter。它运行读取 maxThrotle 属性的 getter。它运行读取 maxThrotle 属性的 getter。它运行读取 maxThrotle 属性的 getter。哪个.. Kaboom!
-
汉斯你在重复你自己。变老? ;)
-
@garglblarg 或其中一个分支...考虑一下当您不小心将
i = 0传递给int f(int i) { return (i % 2 == 0) ? g(i) : h(i); }时会发生什么,而g(i)最终会在某个时候调用f(i)。 -
@CompuChip 好点,我应该刚刚提到递归。但仍然不是由运营商造成的。
标签: c# exception operator-keyword