dotNet

.net framework での現在時刻取得のオーバーヘッドについてのメモ

.net にて、タイムスタンプ*1を低精度で良いので高速に得たかったのだが、どの方法が早いのかについてあまり情報がなかったので、やってみた。 やった実験 以下のプロパティをそれぞれ 1048576 (2^20) 回呼び出すメソッドを 4 回呼び出すコードを Debug ビル…

MethodInfo.GetGenericArguments() と System.RuntimeType と配列の covariance

概要 配列の covariance のおかげでデバッグに手間が掛かった、という話。 キーワードについて MethodInfo.GetGenericArguments メソッド これは、メソッドの型引数を表す Type[ ] を返す。 System.RuntimeType は、System.Type の .net 上における実装。 Sy…

RSACryptoServiceProvider にて「指定された状態で使用するには無効なキーです。」

ref: Key not valid for use in specified state...what do you mean? ref: novolocus.com - このウェブサイトは販売用です! -&nbspnovolocus リソースおよび情報 ref: RSACryptoServiceProvider.Encrypt Method (System.Security.Cryptography) | Microsof…

pdb2mdb で、Mono 環境でもスタックトレースに行番号が出るようにする

要約 .net framework 上で Debug ビルドすることで得られる .pdb ファイルを、Mono 2.x で使える .mdb ファイルに変換することで、.net でビルドしたバイナリのデバッグ情報を Mono 環境でも使えるようにする、という話。こうすることで、.net framework 上…

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

文字列(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 にはそれらスタックベースの処理を、メッセージと呼ばれるオブジェクトを受け渡す形に変換する機構が備わっている。どのような機構かと言うと、透過的プロク…

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 のドキュメントに ��ư…

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…

いろいろな環境での SpecialFolder

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

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

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

MessagePack C# 実装を作ってみた

Notice: こちらのエントリに、より新しいバージョンについての記述があります。MessagePack の PHP(PECL) 版の実装を作ろうと思っていたのだが、諸般の事情もあって .net/mono 版を急ぎたかったので、とりあえず C# でさっさか実装してみた。ひとしきりの Un…

FrameDimensionsList, SelectActiveFrame を使って画像の複数フレームにアクセスする場合の注意点

ref: System.IO.FileStreamを使用して呼び出したマルチTiffの表示について: DOBON.NETプログラミング掲示板過去ログ昔にもハマった記憶があって、昨日またハマってしまったのでメモ。 以下は、.net framework にて画像の複数フレームにアクセスするために Im…