C# の学習内容まとめ
用語と概要
クラス名
共通した事が書かれているクラス | 基となるクラスを参考にするクラス |
ベースクラス | |
親クラス | 子クラス |
スーパークラス | サブクラス |
基底クラス | 派生クラス |
修飾子
private | そのクラス内でしか使えない |
public | どのクラスからでも使える |
protected | 親子で共通して使える(他人は使用不可) |
sealed | 継承を禁止する |
internal | 同じアセンブリ(プロジェクト)なら使える |
キーワード
virtual | 子クラスで書き換え可能にする場合に使用する |
override | 子クラスで親クラスのメソッドを再定義する場合に使用する |
base | 親クラスの virtual で宣言しているメソッドの内容を実行する場合に使用する |
static | シングルトンのようにゲーム内に1つしか生成しない場合に使用する |
const | 固定値を宣言する場合に使用する |
強制
名前 | インターフェイス(interface) | 抽象クラス(abstract) |
使用方法 | 他クラスへの実装 | 他クラスへの継承 |
命名規則 | 「I」+大文字から始まる名前 | なし |
メソッドのルール | 必ず public を付ける事 | なし |
「実装/継承」数 | 複数実装可能 | 1つのみ継承可能 |
記述兄用 | メソッドの宣言のみ | メソッドの宣言のみ |
メソッドの使用 | 強制(使用しないとエラーになる) | 要望(使用しなくてもエラーにならない) |
使用状況 | 個人開発/共同開発 | 共同開発 |
参照渡し・値渡し
参照渡し(ref) | ・「渡し手」の値をそのまま「貰い手」に渡す(「同期する」に近い) ・「渡し手」が「貰い手」に参照渡しをした後に 一方が値を変更したら、もう一方も変更される |
値渡し | ・「渡し手」の値をコピーした値を「貰い手」に渡す(メモリが増える) ・「渡し手」が「貰い手」に参照渡しをした後に 一方が値を変更しても、もう一方は変更されない |
クラス
クラス名 | 内容 |
static(静的)クラス | MonoBehaviour クラスを継承する事が出来ず、 ゲームオブジェクトへのアタッチも出来ないため、 1つしか存在しない事が保証される (シングルトンのアタッチできないバージョン) |
sealedクラス | 他クラスへの継承が出来ない(禁止する)クラス |
変数
変数名 | 内容 |
static(静的)変数 | 主にシングルトンで instance 変数を宣言する際に使用する |
const 変数(定数) | 必ず宣言するタイミングで初期化しなければならず、 宣言時以外に値を変更する事は出来ない (宣言時以外は読み取り専用となる) |
メソッド
メソッド名 | 概要 |
Main() | ・エントリーポイント ・必ず static(静的)メソッド ・引数は「なし」か「string[] args」 ・戻り値は「void」か「int」か「Task」か「Task<int>」 |
「エントリーポイント」とは、そのプログラムにおいて一番最初に実行される場所の事である。 (Unity でいう「Start()」、Unreal Engine でいう「Begin Play()」)
注意点
- 子クラスで「Update()」と「Start()」をそのまま宣言すると、親クラスの「Update()」と「Start()」が無効になる
- Console クラスの「ReadLine()」の戻り値は null の可能性もあるため、戻り値を取得する際は必ず「string?」(null許容型)にしなければならない