概要
(書きかけ)
C# は、企画段階では “Safe C” (安全な C 言語)と呼ばれていた時期もあるそうです。 プログラマーが陥りがちなミスを避けるため、間違いそうな文法を避けたり、細かな規則を設けています。
予定
http://www.slideshare.net/Coverity/the-psychology-of-c-analysis-24025354 switch fall through これはでも、今の感覚からすると「breakを書かなくてもcaseをまたがない」にした方が好感度高そう。 大体の人は「いちいちbreak書くのめんどくさい」って言うし。 実際、最近の言語でbreak書く言語あまり見ないし。 この辺りはC言語からの負の遺産。 unfase 制限 実装依存をなくす x = ++x + x++; とかの、term の評価順 配列の境界外アクセス禁止、lengthを自分で知ってる { { var x; } var x; // error } 未初期化変数禁止、フィールド/配列の0クリア non-null 参照の考え方と相性悪いけど 数値系の暗黙的変換なし ポインター ⇔ 整数 ⇔ char, bool, enum 符号 x + 1; みたいな、何も起こさない式だけを認めない if (x = 0) エラー return してないパスを認めない