仕様書を読んでみた

a == b かつ !(a = b)

C# の言語仕様には、表題の通り a == b !(a !(a >= b) を全て満たす値の組み合わせがある、という小話。なお、ユーザー定義の演算子で〜というオチではない。(続きを読む、で隠してみた)

CLI や C# における -0 (マイナスゼロ) や符号のコピー

サンプルコード float pZero = 0.0f; float nZero = -0.0f; // True Debug.WriteLine("pZero == nZero: " + (pZero == nZero)); // False Debug.WriteLine("+∞ / pZero == +∞ / nZero: " + (float.PositiveInfinity / pZero == float.PositiveInfinity / nZe…

float と 80bit FPU

Annotated C# Standard を読んでみたシリーズその 2。 同じ計算の結果なのに != になる、という話。参考: 2007-06-03 何はともあれサンプル public float f1 = 2.82323f; public float f2 = 2.3f; public float member; public float Calc() { return this.f…

C# における仮想メソッドと非仮想メソッドのオーバーロード解決

Annotated C# Standard を読んでみたシリーズその 1。 オーバーロードの解決が一見すると謎な扱いになってしまうという話。 何はともあれサンプル class A { public virtual void Method(int value) { System.Diagnostics.Debug.WriteLine("A.Method(int)");…