30
C#または.NETで見た最も奇妙なコーナーケースは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 9年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 私はいくつかのコーナーケースと頭の体操を集めており、いつももっと聞きたいです。このページでは、C#言語のビットとボブだけを取り上げていますが、.NETのコアなことも興味深いものです。たとえば、こちらはページにはありませんが、信じられないようなものです。 string x = new string(new char[0]); string y = new string(new char[0]); Console.WriteLine(object.ReferenceEquals(x, y)); 私はそれがFalseを出力することを期待します-結局のところ、「新規」(参照タイプを伴う)は常に新しいオブジェクトを作成しますね?C#とCLIの両方の仕様は、そうすべきであると示しています。まあ、この特定のケースではありません。Trueを出力し、私がテストしたフレームワークのすべてのバージョンで実行しました。(確かに私はMonoで試したことはありません...) 明確にするために、これは私が探している種類の例にすぎません。この奇妙な点についての議論や説明は特に探していませんでした。(通常の文字列インターンと同じではありません。特に、コンストラクターが呼び出されたときに文字列インターンは通常発生しません。)私は、同様の奇妙な動作を本当に求めていました。 そこに潜んでいる他の宝石はありますか?