東方算程譚

επιστημηがヨタをこく、弾幕とは無縁のCUDAなタワゴト

書籍レビュー: 「新版 独習C#」

「新版 独習C# 山田祥寛 : 翔泳社 ISBN978-4-7981-5382-7

タイトル通り、C#の教本/自習書です。
僕は根っからのC++屋なもんで、ちょっとしたアプリ/ライブラリの類はC++で書いちまう。けどもGUIを伴うアプリあるいは.NETから使えるC++ライブラリのテストとなるとC#もそこそこ書けないと何かと不便です。
C#は15年も前のver.1.1の頃に一冊だけ買い求めました。基本的な文法/構文は現在に至るまで大きく変わることがなかったので古めかしい教本でもさほどの不便を感じてはいなかったのですが、ミョーにまだるっこい、遠回しなC#コードを書いてるんじゃないか、きょうびのC#ならもっと簡潔でエレガントに表現できるんじゃないかと思い始めていたのです。
で、モダンなC#を知ろうと言語仕様書を探してみると、公式のドキュメントはECMA-334でしてこれがC#5留まり、(2017時点で)最新のC#7にぜんぜん追いついていませんし、Microsoftの文書にしてもC#5に加えてC#6,7の差分の形でしか読むことができません。
おベンキョしよかと資料漁ってみたらばそんな有様、モヤモヤしてるところで「C#7の教本欲しくない? レビュー書いてもらうけど」のオファーが目に留まった次第です。

「新版 独習C#」ハプログラミング言語の教本としてはオーソドックスな章立てで構成されています。1~4章でイントロから始まり変数・型・演算子そして制御構文、ここまで習得すれば簡単なコンソールアプリなら作れます。
つぎにひとつメの山が訪れます。近頃の言語はどれも大抵そうなのですが、C#ってば文法/構文はシンプルにしておいて力不足な部分をライブラリで補っているように思えます。5,6章は主要かつ基本的な標準ライブラリのいくつかとコレクション(コンテナ)の解説、ココきっちり押さえておくとのちのち何かと役に立つ、ってゆーかアイデアをコードで表現するのに楽ができるはず。
7,8,9章がふたつメの山場:オブジェクト指向。Cなんかの手続き型言語に染まったビギナには考え方の大きな転換を迫られるでしょうね。手続き型だと「関数にデータを食わせて加工する」を繰り返して目的の機能を実現してたことでしょう。これがオブジェクト指向だと「データに命令して新たなデータを手に入れる」の繰り返しとでも申しましょうか、データと操作の主客が交代するよな感じになるんです。ココ躓きやすいから注意ね。
10章以降はかなり凝ったワザの数々、WPF/UWP等によるGUIアプリの実装にはほぼ必須になるから覚悟されたし。

本書の章立てを順にざっくり追いかけると以上のような雰囲気です。アタマから着々とこなしていけば、あとはライブラリ/フレームワークの使い方を学べばGUIアプリが作れるようになりますよ。

てなわけで「新版 独習C#」、とりあえず動けばいいやじゃなく基礎からきっちり学ぶべく並べられた、ストレスのない構成です...なにより日本語ですし。もちろん原本から学ぶのが間違いないのは間違いないけど...ECMA-334は当然英語、僕にはやっぱりストレスフルですわ。
本書が僕的になにより有難いのは、もくじのタイトルにC#6,7で追加された項であることが明記されていること。基本はそこそこ理解してるけど新機能には疎いんですよね。