Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

Java経験者のための、C#のキャッチ・アップ用小ネタ集(初回)

今更感が満点なのですが、あくまで「お仕事」でC#を使うことになったので、経験的にはJava歴が最も長いJava技術者なワシがキャッチ・アップに使ったサイトとか事項をメモっておけば、同じようなスキルを持つJavaエンジニアがC#にハマったときに役立つかもと思い記事にしておきます。

と思って色々とメモっておいたら、それなりに長大になってしまったので、いくらか小分けにして公開していこうと思いますので、お手柔らかによろしくお願いします。

言語仕様

まずは新しいプログラム言語にとりかかるなら、言語仕様を理解しなきゃね☆ってことで、うーん。
C# 言語仕様 (by Microsoft MSDN)
のリンク先からダウンロード出来る CSharp Language Specification.htm というファイルは、3MB近くあって開いてみると見渡す限り English なのでキャーという人には、我らが@ITですな。

Insider.NET > 連載  改訂版 C#入門 - @IT

・・・と思ったけど、果てしない。その情報量の充実っぷりが果てしなさ過ぎるので、↓をさらっと読んだら、これはイイ感じに特徴的な部分がキャッチアップできる。なので、@ITは必要に応じてつまみ食いすればOKかな、と。

C# - Wikipedia

C# 1.1からC# 3.0まで〜言語仕様の進化 (1/3):CodeZine

コーディングルール

これといって、バチッとハマる内容にまとまっているドキュメントが見つからない*1。困る。

(参考URL)


(2013/04/01追記)
命名文化として特徴的でJavaと異なっているのは、

  • interface名 : IHogeHoge ... という感じにサフィックスに "I" をつける。
  • method名 : DoAnything() ... という感じにPascal形式*2にする。

というあたりでしょうか。

*1:コーディングルール公開と言えば、Java版で有名なオブジェクト倶楽部 が公開しているC#コーディングルールもあったのですが、冒頭にJavaベースでC#用に改訂という断り書きがあり、確かに1ファイル1クラスとか本当にJavaっぽいルールになっております。C#に馴染ませ切れていない感があるため、Web上ではこれに対してアンチな意見も見られました。正式ドキュメントとして使えるフォーマットで公開している心意気はいつもながら素敵と思いますが、内容的な微妙感についてはワシも同感なので推奨・ご紹介はしません。

*2:単語の頭文字を大文字