脇見運転 このページをアンテナに追加 RSSフィード

ページ下に目次を用意しています。ボストン滞在記録は2004年1月からご覧ください。スカイポッドについては専用目次をご覧ください。

2008-08-17

ぜんぜん知らないC#言語を手っ取り早く覚える方法

ぜんぜん知らない開発言語をてっとりばやく覚える方法 C# 編 - ものえおさむ - builder by ZDNet Japanというページに大量のブックマークがついていました。ふむふむというか、常識というか。hello worldからやる方法だって、その「使う機能だけ覚える」というアプローチだと思うのですが、違いますでしょうか。

さて、一年ほど前にC#を使い始めて「これなら、もうDelphiはいらない」と思うほど気に入っています。先ごろUSB ROM Writerが完成しましたが、これもC#じゃなかったら結構てこずっていたかもしれません。

さて、そのROM Writerを書きながら覚えたC#ですが、私が覚える上でこつだと思ったことを列挙しておきます。C/C++プログラマ向けのリストかもしれません。

  • namespaceがある
  • すべての関数はメソッドとしてクラスに閉じ込められている
  • 変数はすべてガベッジ・コレクタが管理するので、生成した変数プログラマが廃棄する必要はない
  • 強く型付けされている
  • 整数型はInt, 浮動小数点型はSingle, 文字列型はString
    • 型とビット数はがっちり結びついている
    • 整数型にはInt32, Int16などがあり、場合によっては明示的な型変換が必要
  • 関数引数には in, out, refの種別があり、厳密に区別される

言語仕様としてはこんな感じです。特にほめるようなところのない言語ですが…すばらしいのは開発環境です。

Visual Studioエディタは、シンタックスカラーリング入力補完や引数ヒントが充実している
とくに入力補完はすばらしいです。あらかじめ分かりやすいメソッド名、メンバー変数名をつけておけば、いちいちクラス定義を見返さなくても補完機能頼りでプログラムをすいすいくみ上げることができます。
言語ヘルプが充実している
ちょっと疑問に思うことがあれば、F1キーで呼び出して調べれば分かります。普段からGoogle検索にどっぷり使っていますが、言語ヘルプという文書は、自分で調べる人の強い見方です。
.NET Frameworkには、たいていのルーチンがはじめから用意されている
これは本当に重宝しました。型変換や文字列変換のようなありがちな機能は、はじめからちゃんと用意されています。ですから、「きっとあるはず」と信じてヘルプを漁れば、自分でコーディング/デバッグする手間が省けます。

本当のところ、プログラム言語って、ちゃんとしたのを一つ覚えれば、二つ目以降は大して難しくないんですよ。だってプログラム言語の背景にある言語理論や、その処理のためのアプローチは1960年代にはほぼ完成しているのですから。その後1970年代に新しいパラダイムが少し生まれたくらいです。それだって考え方の問題でしかない。

新しい言語を使うときに一番面倒なのは、どんなライブラリがあるか把握することです。.NET Frameworkの全貌はとても把握し切れていませんが、どうなっているか調べるための環境が充実しているのでとっつきやすかった、というのが感想です。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/suikan/20080817/1218934287
2001 | 01 |
2003 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2014 | 02 | 03 | 04 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 12 |
2016 | 01 | 02 | 03 | 04 | 07 | 09 | 10 | 11 | 12 |
2017 | 01 | 02 | 04 |