空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

memo

C++ からの移行で,ちょっと注意が必要そうなものをリストアップ

制御

  • case 文は必ず break しなければならない。(私は少し残念)
  • 関数の引数は通常,値渡し。ref や out を用いる。ref や out は宣言時だけでなく,呼び出し時にも必要。
  • foreach 文がある。C++ の for_each と違ってちゃんとブロックをとれる。

クラス

  • virtual method のオーバーライド時には virtual の代わりに override と書く。便利。
  • 基底クラスのネームスペースは base。便利。
  • 非仮想関数のオーバーライドには警告が出る。意図的に上書きする場合は new を使う。
  • プロパティ記法がある。GetXX,SetXX という煩わしい関数が無くなるのは嬉しい。
  • インデクサを使うと operator[] みたいなことができる。ただし参照渡しは出来ない。
  • event 記法がある。アスペクト指向っていうんだっけ。便利。イベントハンドラのプロトタイプは delegate を使って宣言。演算子 += と -= でイベントを追加したり削除したりできるのは便利。
  • アクセス修飾子には,public,protected,private に加えて internal がある。internal は「同一 .NET コンポーネント内で public」の意味。クラスの宣言に対するアクセス修飾子は,通常 internal しか使わないようだ。

例外処理

  • コンパイラによるオーバーフローチェックをキャンセルしたい場合は checked {} を使う
  • try - catch - finally がある。とくに C++ な人にとって finally は憧れだったんじゃないだろうか。これは Java と同じ。この辺は Objective-C は @try - @catch - @finally だし,Ruby は begin - rescue - ensure となっている。このセットがほぼ理想型なのかな。

こんなところかな。あとは追々,調べて行こう。次は標準ライブラリの充実具合を調査か。

今回読んだのは「C#入門―Microsoftの次世代言語を学ぶ (Ascii books)」という本。とにかく「薄さ」で選んだ本。コンパクトにまとまっているので,2 時間くらいで大体,C# が分かった気になる。余計なことを知らなくて済むので,C# をちょっと除いてみたい人,マネージャクラスの人に最適な本かも。

C#入門―Microsoftの次世代言語を学ぶ (Ascii books)

C#入門―Microsoftの次世代言語を学ぶ (Ascii books)