FlasherのためのSilverlight入門(2) AS3とC#の違い

前のエントリーでも書きましたが、C#を学びたい人にはこのページがお勧めです。

C#によるプログラミング入門

言語の文法的な違いは色々ありますが、基本的な考え方はほとんど同じようなものです。より柔軟にかけるのがC#だと思っていいと思います。partialクラスや構造体、演算子のオーバーロード、列挙型などAS3にない概念もありますが、これらは別に知らなくても実装できるので、無視してかまいません。多重継承ができないのも一緒ですが、以下に知っておいた方がいいだろうという点を書いておきます。

 

  • 変数の組込み型の違い 本格プログラム言語らしく、より種類があります。
  • コンストラクターのオーバーロードが可能、デストラクタ―もある AS3はなんでないのって感じですが、コンストラクターのオーバーロードが可能です。
  • 書き方の作法の違い。AS3ではクラス名は大文字から始まる、関数名は小文字から始めるのが通例ですが、C#だと両方大文字だったりするので、APIを読んでるとちょっと不便です。
  • 演算子のオーバーロード これは慣れると強力で、カスタムクラスのインスタンス、a,b,cに対して、c=a+b;のような文法で演算することが可能になります。
  • 静的コンストラクタ 静的なプロパティなどを初期化する際に使うコンストラクタで、プログラムの実行時に一度だけ呼ばれます。静的プロパティの定義時に初期化すればいいという話もありますが・・・あとクラス宣言時にstaticを指定して完全なstatic クラスを作ることができます。
  • getter/setterの書き方も違います。
  • 関数宣言時にfunctionはありません。返り値の型指定や、引数の型指定などの書き方も違います。
  • 配列の中身はなんでもいいわけではなく、配列宣言時にその中に入るアイテムの型指定を行います。また、インデクサーを指定することにより、Arrayクラスを拡張といったことをしなくてもカスタムクラスを配列のように扱うことができます。
  • 連想配列は、Dictionaryクラスを使うよ。

 

とまぁ書き出したら色々あるのですが、上に書いたのは非常にざっくりしたポイントなので、C#によるプログラミング入門は必ず一度読んでおくといいと思います。

コメントする
トラックバック(0)

トラックバックURL: http://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/148