示例代码:
public class SimpleClass
{
private NestedClass nestedClass = new NestedClass();
public class NestedClass : SimpleClass
{
}
}
// when instantiating in say.. main()
SimpleClass simpleClass = new SimpleClass();
Run Code Online (Sandbox Code Playgroud)
我来自C++背景,所以我很难绕过这里发生的事情.具体来说我们如何实例化NestedClass内部SimpleClass.理想情况下编译器需要完全布局SimpleClass才能实例化NestedClass,而这又需要SimpleClass.它本质上是递归的.
这就是我们运行此代码时会发生的情况.我们得到StackOverflow:)例外!
在C++世界中,编译器会incomplete type在这种情况下哭泣.
所以我的问题的关键是:
这里发生了什么,编译器如何布局这个类(我知道它的实现细节,但没有完整的类型我们如何实例化一个对象?)
此运行时异常是故意的,还是应该是编译时错误?
我期待圆形小数,0.1到0.4向下舍入和0.5到0.9向上尝试这些,但由于某种原因,如果值为4.5它舍入到4而不是5所有其他值工作正常.3.5 = 4.0,5.5 = 6.0但4.5 = 4.0预期5.0
Math.Round(value / 2)
Math.Round(Math.Round(value / 2),0, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud) 我是haskell的新手,我正在尝试创建一个表达式,它给出了一个从0到n的整数列表,它可以被3整除.我写的脚本不起作用,我不知道是什么原因.
zeroto :: Int -> [Int]
zeroto n = [x | x <- [0..n]]
where
x "mod" 3 == 0
Run Code Online (Sandbox Code Playgroud)