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)
- 作者: クリストファーウィル,Christoph Wille,クイック
- 出版社/メーカー: アスキー
- 発売日: 2000/09
- メディア: 単行本
- この商品を含むブログ (4件) を見る