Twitterにだらだら書きそうだったのでちょっとまとめて。故あってMac環境なので、IDEにはRider-EAPを使ってます。やっててよかったJetBrains Toolbox!
1日目学習リスト
マルチスレッド前提の言語を初めてやるので小さな感動がたくさんあった日
チュートリアルでコンソールアプリケーションを作成
https://docs.microsoft.com/ja-jp/dotnet/articles/csharp/tutorials/console-teleprompter
using ステートメント
厄介なストリーミングで受け取るデータのメモリ解放にぴったり。単にライブラリ読み込むだけじゃなかった!よかった。例外発生でもリソース開放とかいいね!
IEnumerable 列挙子
yield return ステートメントに対応した列挙要素…なにそれ。ActionScriptだったら(ry
yield ステートメント
良きに計らってくれる非同期のお助けステートメント。こまめに値を返してヘッダを開放したい(このあたりFlash屋さんの考え方)ときはコレ。とは言え乱用注意だね。
定数は全部大文字のわけではない。
Environment.NewLineは改行の定数っぽい。
Console.write/Console.writeLine
毎度改行するかでメソッドが別れるタイプの言語なのね
Theading.Task は Delay設定してからWaitでまつ
phpなどでsleepとかそういうのをよく見てたので新鮮。Queryな考え方か。
var は型なしというわけではない?
コンパイラを通したときに内部では確定する型なのでJavaScriptのようなパンドラの箱ではない様子
staticなクラスを使うときはやはりstaticが必要
import気分でいたらそうではなかった。コレはしばらくぶりにC#書いたりすると間違いそう。
lock
マルチスレッド前提らしい排他処理を約束してくれるステートメント。実感はまだないけどよく使いそう
1日目を通して
まずはセミコロンと{}最高。ない言語は滅んでしまえばいい(チラシの裏だからいいはず
今のところ、便利な言語というのに尽きる。他の言語でコレできたんだけどーより、こういうことが、幾つかの方法で提供されてて選んで使っていけるということが多い。
Riderは良かった!チュートリアルを進めるてるとそのコードの書き方はCoolじゃないね!とばかりゆるく指摘してくれるし、なによりサジェッションの表示に慣れてる自分には助かる。あと、若干VisualStudioよりシンプルで迷いにくいのもいいかも。
最終的な目的はHoloLensのUWP作れるために最低限理解する、かけるようになるなので、Riderは選択肢に入らないIDEなんだけどUnityと組み合わせたり、Macでチュートリアルを進めるには大変良さそう。
余裕がある日に続けていきたい