初期化して無い変数を関数等に渡そうとするとコンパイルエラーがでます。refキーワードを使えば値型でも参照で渡すことができます。今までも何度も出てきたあれですね。C++でいうテンプレートです。兎にも角にも定義してみましょう。静的メソッドをオブジェクトのメソッドと同じ形式で呼び出せるようにできるものらしいです。普通に書いた場合の処理を見てみます。partialキーワードを使えばクラス定義を分割することができます。usingキーワードを使って名前空間のエイリアスを定義することができます。名前の無いクラスって感じですかね。checkedキーワードを使えばオーバーフローが発生した場合に例外を投げることができます。対象の変数がnullだったら初期値を入れるという処理を書くための演算子です。三項演算子の特殊省略形のような感じですね。defaultを使うと、変数宣言時に初期化しなかった場合の既定値を明示的に取得することができます。文字列リテラルを定義する際に先頭に「@」を付けると、見たままの文字列として扱えます。エスケープシーケンス等の解釈がされません。複数行にまたがって文字列を定義できます。変数を宣言する時に変数名の先頭に「@」をつけるとC#のキーワード名と同名の変数でも宣言することが可能となります。thisを変数名として使う場合、通常なら以下のエラーがでます。これは凄い機能ですね。変数の型をコンパイル時ではなく実行時に決めるようにする変数です。変数を宣言するときにvarを使うと、右辺値から判断して適切な型を設定してくれます。第6版でずっと勉強を進めてたわけですが、どうも細かいところの言語仕様が省かれているようなので一旦下記サイトで基礎のおさらいをしようとおもいます。Listが出てきました。これまでも何度か登場していましたね。通常の配列では配列の要素数が固定されてしまうという問題がありましたが、Listを使うと内部で配列の拡張を自動でやってくれる優れものです。多次元配列は二種類の定義方法があります。ジャグ配列(配列の配列)と言って配列の要素の配列を任意の数の配列で定義することができます。