C#チュートリアルのメモ
2021-07-29に更新

オブジェクト指向プログラミング

学習内容

オブジェクト指向プログラミング

口座クラスを継承

いろんな種類の口座を追加したいとき、BankAccountクラスをコピーして似たようなクラスを沢山作るのは大変なので継承を使う。

ポリモーフィズム

派生先の3種類の口座はすべて月末処理がある。しかしそのタスク内容は異なる。
そこでポリモーフィズムを使用。
- virtualキーワード:基底クラスに定義する。派生クラスでオーバーライドできる。オーバーライドするかどうかは任意。
- abstractキーワード:基底クラスに定義する。派生クラスでオーバーライドできる。オーバーライドは必須。

ラムダ演算子

=>を使って式を定義できる

public override string ToString() => $"{fname} {lname}".Trim();

これは以下の短縮形

public override string ToString()
{
   return $"{fname} {lname}".Trim();
}

readonlyキーワード

readonly:オブジェクト構築後、この変数の値は変更できない

:this()式(コンストラクタチェーン)

コンストラクタに付与し、別のコンストラクタを呼び出す

public BankAccount(string name, decimal initialBalance) : this(name, initialBalance, 0) { }

↑ 2つの引数を受け取った場合、this式で以下のコンストラクタ(引数が3つ)を呼び出す

public BankAccount(string name, decimal initialBalance, decimal minimumBalance)
{
    // 何かの処理
}

protectedキーワード

protected:派生クラスからのみ呼び出せる

メソッドの返り値にnullが含まれる可能性のあるとき

返り値の型のサフィックスに?をつける

protected virtual Transaction? CheckWithdrawalLimit(bool isOverdrawn){...

三項演算子

C#での条件分岐の書き方、省略した書き方、nullチェックの書き方のまとめ

条件文 ? trueの場合の処理 : falseの場合の処理

お手本
https://github.com/dotnet/docs/tree/main/docs/csharp/fundamentals/tutorials/snippets/object-oriented-programming


same.__.same
C#チュートリアルのメモ
所有者限定モードのためこのボードには投稿できません
コメント
C#チュートリアルのメモ