C# うわさ話

あくまで噂ですよ,噂.決して鵜呑みにはなさいませぬよう.

Anders は AOP がお嫌い

イベント会場等で見かけても,「partial method って AOP ですよね?」みたいな質問はダメ,絶対,という噂.まあ実際はイベントだとニコニコ応対してくれますけどね.

Anders はクエリ式よりもドット表記の関数呼び出し形の方がお好き

from ほにゃららはあまりお好きでない模様.じゃあなぜクエリ式を導入したのかと言えば,関数呼び出し形で join を書くとあまりにも不格好なため,という噂.Linq to SQL が嫌いで Linq to Object が大好きという噂の Luke Hoban 師は,クエリ式を愛してそうですけどね.

C# 3.0 で自動プロパティが入ったのは Anders の機嫌が良かったから

毎回要望として挙げられながら 10 回以上却下され続けてきた自動プロパティが C# 3.0 の開発末期に追加されたのは,単にそのとき Anders の機嫌が良かったから,という噂が正しければ陰謀説・宇宙人説・陛下には深いお考えがあってのこと説の皆様はボッシュート

XML リテラルが使える C# 3.0 コンパイラが誤って公開されたことがある

過去のとある Visual Studio 2008 CTP/beta では,Visual Basic 9.0 新機能のはずの XML リテラル が何故か C# でも使えてしまっていたという噂.「Anders ニハ ナイショ ダヨ」

C# が将来のための予約語を定義していないのは意図的なもの

Java が将来のためにいくつかの単語を予約語としているのとは対照的に,C# がそういった予約語を持たないのは,Anders の方針,という噂.一方,C# コンパイラ新バージョンの出荷では,既存のコードが修正無くコンパイルできることが非常に高い優先度を持つとか.この手のネタでお勧めは Eric Lippert 氏の blog.

  • Future Breaking Changes
    • Part One
      • 以下,例に挙げられていたコード.C# 1.x でコンパイルできて,C# 2.0 でコンパイルできない例.わお.
class Program  {
    static void M(bool x, bool y) {}
    static void Main() {
        int N = 1, T = 2, U = 3, a = 4, b = 5;
        M(N < T, U > (a+b));
    }
}

その他関連記事.