你在C#或.NET中看到的最奇怪的情況是什么?我收集了幾個(gè)角落的箱子大腦挑逗者總是想聽(tīng)更多。該頁(yè)面只涉及C#語(yǔ)言位和bobs,但我也發(fā)現(xiàn)核心.NET內(nèi)容也很有趣。例如,這里有一個(gè)不在頁(yè)面上,但我覺(jué)得難以置信的:string x = new string(new char[0]);string y = new string(new char[0]);Console.WriteLine(object.ReferenceEquals(x, y));我希望打印錯(cuò)誤-畢竟,“新”(引用類型)總創(chuàng)建一個(gè)新的對(duì)象,不是嗎?C#和CLI的規(guī)范都表明它應(yīng)該。在這個(gè)特殊的情況下。它打印了True,并在我測(cè)試過(guò)的框架的每個(gè)版本上都這樣做了。(無(wú)可否認(rèn),我還沒(méi)有在Mono上試過(guò).)我要說(shuō)的是,這只是我想要的那種東西的一個(gè)例子-我并不是特別想要討論和解釋這個(gè)奇怪的東西。(這與正常的字符串實(shí)習(xí)不一樣;特別是,在調(diào)用構(gòu)造函數(shù)時(shí),通常不會(huì)發(fā)生字符串實(shí)習(xí)。)我真的是在要求類似的奇怪行為。還有其他寶石藏在外面嗎?
3 回答

aluckdog
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
Math.Round(-0.5) == 0Math.Round(0.5) == 0Math.Round(1.5) == 2Math.Round(2.5) == 2etc...

慕姐8265434
TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
Rec(0)
static void Rec(int i){ Console.WriteLine(i); if (i < int.MaxValue) { Rec(i + 1); }}
在32位JIT上,它應(yīng)該會(huì)導(dǎo)致StackOverflow異常。 在64位JIT上,它應(yīng)該將所有數(shù)字打印到int.MaxValue
- 3 回答
- 0 關(guān)注
- 363 瀏覽
添加回答
舉報(bào)
0/150
提交
取消