Unity & C# 学習教材

C# 言語入門

C# プログラミングをゼロから学びます。

このセクションの内容

.NET の仕組み

# トピック 概要
1 C# と .NET の基本 コンパイルと実行の仕組み、.NET の役割
2 中間言語と JIT コンパイル IL・CLR・JIT、Unity の Mono と IL2CPP
3 .NET SDK と dotnet CLI SDK のインストールから作成・ビルド・実行まで

C# 基本文法

# トピック 概要
4 最初のプログラムと変数 逐次実行・リテラル・算術演算・変数の宣言と代入
5 プリミティブ型と型変換 数値型の表現範囲・符号・char と string・型変換・異なる型の演算
5.1 数値リテラルと型エイリアス(補足) 0x/0b リテラル・型サフィックス・int=System.Int32・2の補数
6 条件分岐 if/else, switch による分岐処理
6.1 ブロック文とスコープ(補足) ブロック文・スコープ・else if の実体
6.2 条件演算子と式・文(補足) 式と文の違い・? : 演算子
7 反復処理 while・do-while・for・foreach による繰り返し処理
7.1 インクリメント・デクリメント(補足) ++ -- の前置・後置の違い・複合代入演算子
7.2 break と continue(補足) ループの途中脱出とスキップ
8 ビット演算 AND・OR・XOR・シフト・ビットマスクによるフラグ管理

C# 配列と集合操作

# トピック 概要
9 配列の基礎 宣言・初期化・インデックスアクセス・Length・for/foreach 走査
9.1 配列と foreach(補足) foreach の書式詳細・var・読み取り専用・for との使い分け
9.2 Array クラスと配列の性質(補足) 参照型の挙動・Sort/Reverse/IndexOf/Copy/Clear
9.3 ビットパッキング(補足) bool[8] を byte で表現するパック/アンパックの手法
10 多次元配列 2 次元配列(行列)の宣言・初期化・GetLength・ネストループ走査
11 ジャグ配列 可変長行の配列・多次元配列との比較と使い分け

C# クラスとオブジェクト

# トピック 概要
12 クラスとフィールド クラスの定義・インスタンス生成・フィールド
13 メソッド メソッドの定義・パラメータ・戻り値・オーバーロード
14 コンストラクタ new 時の自動初期化・デフォルトコンストラクタ
15 アクセス修飾子 public / private によるカプセル化
16 プロパティ get / set アクセサー・自動実装・読み取り専用プロパティ
17 インデクサ this[] で配列のようにアクセスできるクラスの定義

C# メソッドの応用文法

# トピック 概要
18 ref / out / in パラメータ 値渡しとの違い・参照渡し・読み取り専用の参照渡し
19 省略可能パラメータと名前付き引数 デフォルト値・名前付き引数
20 params キーワード params による可変長引数・配列渡しとの違い・コンパイラの変換
21 オーバーロード解決 候補の絞り込み・完全一致 / 暗黙変換 / params の優先順位・あいまいエラー
22 演算子のオーバーロード 自作クラスに +== などの演算子を定義する方法
23 再帰関数とコールスタック 再帰呼び出し・終了条件・スタックフレームの積み重なり
24 static メンバーと static クラス クラスに属するメンバー・static コンストラクタ・static class
25 拡張メソッド 既存の型にメソッドを追加したように見せる書き方

C# 継承と抽象化

# トピック 概要
26 継承 基底クラス・派生クラス・base キーワード・コンストラクタ連鎖
27 型変換と型チェック アップキャスト・ダウンキャスト・isas・パターンマッチング
28 protected 修飾子 protected のアクセス範囲・継承チェーンでの到達範囲・internal
29 オーバーライドとポリモーフィズム virtualoverride・動的ディスパッチ
30 メソッドの隠ぺいと sealed new 修飾子・override との違い・sealed classsealed override
31 抽象クラスと抽象メソッド abstract classabstract メソッド・派生クラスでの強制実装
32 インターフェイス interface 宣言・実装・多重実装・抽象クラスとの違い
33 インターフェイスの明示的実装 同名メンバーの衝突・明示的実装の書き方・暗黙的実装との比較

C# ジェネリクス

# トピック 概要
34 ジェネリクスの基本 型パラメータ <T>・ジェネリッククラスの定義と利用・object との比較(型安全性)
35 ジェネリックメソッド T Method<T>(T x) の書き方・型推論・静的ユーティリティへの応用
36 型制約 where T : 各種制約(classstructnew()・インターフェイス・基底クラス)
37 共変・反変 out T(共変)・in T(反変)・不変の違いとジェネリックインターフェイスへの適用

C# デリゲートとイベント

# トピック 概要
38 デリゲートの基本 delegate 型の宣言・インスタンス化・呼び出し・実行時のメソッド切り替え
39 デリゲートの変数渡しとコールバック デリゲートをパラメータとして渡す・コールバックパターン
40 マルチキャストデリゲート += / -= による複数メソッドの登録と解除・GetInvocationList()
41 イベント event キーワード・発行者/購読者パターン・EventHandler 標準パターン
42 ラムダ式 => 構文・式ラムダと文ラムダ・Action / Func 組み込みデリゲート型
43 変数キャプチャ ラムダ式によるスコープ外変数のキャプチャ・ループ内の罠・static ラムダ
44 ローカル関数 メソッド内メソッド・再帰との相性・static ローカル関数・ラムダ式との使い分け

前提知識

このセクションはプログラミング未経験の方を対象としています。特別な前提知識は不要です。

学習目標