xna、つまりC#で行くと決めた以上C#で通そうと思う。
そんな訳でちょこまか調べてみる。
C#は.netFramework上でうごくもので要するにJavaみたいなもの、らしい。
とにかく一旦中間言語オブジェクトIL(IntermediateLangage)にコンパイルした上で
これをバーチャルマシン的なCLI(CommonLangageInterface)で実行するもの、らしい。
.netFrameworkってよくWindowsUpdateであれこれ言われたりしてたけどこういうものだったのか…と、今更ながら。
他
・ガーベイジコレクション機能がある。
これは.NetFrameworkの機能らしい。でもCでもメモリ管理なんてよくわからないよw。まぁその辺は適宜Cでも見ながら覚えていこう。でも今回は不要
・クラスの多重継承はできない。
これはC++がワケワカになる原因だと隣席の人がいってた。でも便利らしい。代わりにインターフェースという抽象メソッド(純粋仮想関数)しか定義できずメンバ変数ももてずインスタンスも作成できないという特殊クラスが使える、らしい。
要するに多重継承する時はかならずインターフェイスを通すという制限を設けることでどこで多重継承が行われているのかが明らかになる、ということらしい。
そもそも多重継承なんかしてたら自分でワケワカになりそうだよw
まぁその辺能力があれば自分で管理すればいいのだから許す、というのはCらしい思想ということなんだろうな。
・値型と参照型の変数の扱い。
この二つはActionScriptで散々はまったw。
組み込み型の変数は値型(代入がコピーで行われる)だがクラスの場合は参照型になる。
つまり
a = 1
b = a
b = 2
とやると値型の場合はaは1のままだけどこれが参照型だとaも2になる、という。
そして実行効率を上げるために(どうもメモリ管理と関連があるらしいけどよくわかりません!w)structについては値型になる、ということのよう。
メンバ変数だけで構成されていても参照型にしたければクラスにすればいいし値型にしたければstructにすればいい、ということなのだろうか。
・変数は自動的に初期化される
便利だ。
とりあえず今日はここまで~。
昨日は全然アニメを消化しなかったな~。