LINQの途中で列挙分を出力する周回3つ分くらい遅れでLINQをいろいろ試しまくっているのだが、途中で列挙中の内容を見る方法を考え付いた(先日誰かも言っていたので普通に考え付くことらしいが、そこが周回遅れたるゆえんだ)のでメモ。}}voidはobjectではないというのはおもしろい。CS0184を喰らうのは嬉しくない。次に以下のように変えると、LINQが単純に1つずつ関数呼び出しを処理しているのではないことがわかっておもしろい。4と出そうなものだが、実際にはelem:1elem:2elem:2elem:3elem:4elem:4elem:5となり、関数呼び出しを一気通貫している。C#のVoidなぜC#ではtypeof(void)が問題なく記述できるのだろうか。使用してください」と怒り出す。voidと素直に書くことができない。e);とも書けない(まあvoidだし)。e))とも書けない(追記:いやtypeofはインスタンスには利用できないからそれは当然書けない)。typeof(void)は一体何の役に立つのだろうか?というか、そこまでコンパイラでVoidを特別扱いしなくても良いような気がするんだよなぁ。無駄な定数定義asとisをいじくっているうちに、厳格なSIerが作りそうなヘッポコ定数定義クラスを思いついた。あと5000行くらい続く}で、裸単騎のnullの利用は禁止で、必ず上から適切なnullの利用を強制する。as演算子には次の記述がある。Tの結果は次の式と同じになります。nullで問題なく動作はする。仕様書なので厳密に定義したのだろう。これにヒントを得て、nullの代入に必ずキャストを必要とすると、相当な手間となる。それで、上のような素晴らしく厳格な定数定義が生まれることになった。