你在C#或.NET中看到的最奇怪的情况是什么?我收集了几个角落的箱子大脑挑逗者总是想听更多。该页面只涉及C#语言位和bobs,但我也发现核心.NET内容也很有趣。例如,这里有一个不在页面上,但我觉得难以置信的:string x = new string(new char[0]);string y = new string(new char[0]);Console.WriteLine(object.ReferenceEquals(x, y));我希望打印错误-毕竟,“新”(引用类型)总创建一个新的对象,不是吗?C#和CLI的规范都表明它应该。在这个特殊的情况下。它打印了True,并在我测试过的框架的每个版本上都这样做了。(无可否认,我还没有在Mono上试过.)我要说的是,这只是我想要的那种东西的一个例子-我并不是特别想要讨论和解释这个奇怪的东西。(这与正常的字符串实习不一样;特别是,在调用构造函数时,通常不会发生字符串实习。)我真的是在要求类似的奇怪行为。还有其他宝石藏在外面吗?
3 回答
aluckdog
TA贡献1847条经验 获得超7个赞
Math.Round(-0.5) == 0Math.Round(0.5) == 0Math.Round(1.5) == 2Math.Round(2.5) == 2etc...
慕姐8265434
TA贡献1813条经验 获得超2个赞
Rec(0)
static void Rec(int i){ Console.WriteLine(i); if (i < int.MaxValue) { Rec(i + 1); }}
在32位JIT上,它应该会导致StackOverflow异常。 在64位JIT上,它应该将所有数字打印到int.MaxValue
- 3 回答
- 0 关注
- 331 浏览
添加回答
举报
0/150
提交
取消