2009-01-01から1ヶ月間の記事一覧

XML ドキュメント コメントでの、ジェネリックな型やメンバに付く

要約 XML コメントにて Generic な型やメンバを参照する場合、IEnumerable{int} のように書くことができる。ちょっとしたことだが、忘れがちな事である上、ぱっと検索しても出てこなかったのでメモってみた。 詳細 C# の XML コメントにて、特に、 や ... な…

文字列クラスのメソッド数

文字列(String)クラスのメソッド数。Python: 37 Java: 65 Ruby: 119圧倒的じゃないか、我が軍は。ちなみに、実際に数えたらRuby 1.8で102、Ruby 1.9で103だった。ruby -e 'p ((String.instance_methods - Object.instance_methods).size)' Matzにっき - Numb…

インスタンスが属するクラスをあとから変更する操作を C# で 〜RealProxy バージョン〜

元ネタ インスタンスが属するクラスをあとから変更する操作をいろいろな言語で - Smalltalkのtは小文字です C#と諸々 インスタンスが属するクラスをあとから変更する操作を C# で 概要 元ネタにある C# 版では、オブジェクトへの参照が持っている型ハンドル…

RealProxy (実プロクシ) と透過的プロクシと IRemotingTypeInfo

CLI(や CLR) は、通常はスタックベース*1の世界でメソッド呼び出し*2を処理している。しかし、CLI にはそれらスタックベースの処理を、メッセージと呼ばれるオブジェクトを受け渡す形に変換する機構が備わっている。どのような機構かと言うと、透過的プロク…

OS X に macports でインストールした mono で Graphics や Forms を使うための設定

OS X (10.5.6) に macports で mono をインストールしたはいいが、Windows.Forms や System.Drawing なアプリを動かすために設定が必要だったのにビックリしたので、備忘録をかねてメモ。

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…

System.IO.TextReader.Peek の戻り値でストリームの終わりを判定してはいけない

ref: Microsoftのバグ!? | 自由人usk-mの気ままなブログ"StreamReader Peek" や "TextReader Peek" でググると Peek() の戻り値が -1 かどうかで判定しているコードがたくさん引っかかるが、実際には TextReader.Peek() はストリームの終わりでなくても -1…

浮動小数の比較の実装

一つ前のエントリ: http://d.hatena.ne.jp/saiya_moebius/20090111/1231669765 「float と 80bit FPU」 参考: ��ư�������������� (Boost の close_at_tolerance についてのドキュメント)浮動小数な値同士を比較することについて、Boost のドキュメントに ��ư…

C# 3.0 自動実装プロパティがどう自動実装されるのかを調べてみた

自動実装プロパティがどう自動実装されるのか気になるので調べてみた。 なお、仕様書を読んだわけではない点に注意。 動作を調べるために使ったコンパイラ .net framework 3.5 の csc mono 2.0.1.0 の gmcs コンパイル結果 csc にしろ gmcs にしろ、コードは…

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)");…

いろいろな環境での SpecialFolder

参考: 特殊ディレクトリのパスを取得する - .NET Tips (VB.NET,C#...).net framework のみならず、mono で動かした場合に Environment.GetFolderPath(Environment.SpecialFolder) がどういったパス文字列を返してくるのかが気になった&情報が無いようなので…

今年最初の読書: .net や C# について書籍を当たってみた

(少し遅くなりましたが)あけましておめでとうございます。実家から筑波への帰りに、新宿駅近くの紀伊國屋書店に行ったところうっかり書籍を大量に買い、そのまま帰宅したところ風邪気味なのも相まってうだうだとしていたのでした。そこで買った書籍のうち、…