オーバーロードで新機能追加 ( No.24 )
日時: 2022/03/27 12:24
名前: REDCHEEKS

とりあえずリファクタリング(整理整頓)は終了したので、さっそく新機能を追加しよう。

なんと追加する機能は「割り増し機能」暴言等態度が悪かったときに、叩く回数を増やす、ほんとビックリドッキリサディスティックな機能である。

実現のために使う技術は「オーバーロード」これは多様な機能を1つの関数名でまとめて多様性を実現するための方法。

http://mediasp.kir.jp/img20220326/imgloglog-box/img20210929063533.png

@ まず NakigotoOshikari クラスに、割り増し数を追加する。
A コンストラクタのオーバーロードを追加する。

コンストラクタとは、クラスが作成されるときに1度だけ呼び出される初期化プログラム。
それのオーバーロードを作成することで、多様な処理が可能になる。
昔のプログラム言語では、同じ名前は定義できなかったが、最新のプログラム言語は、名前だけでなく、パラメータの数や形を総合的に判定してくれるから、同じ名前も定義可能、いちいち名前を変える必要がないので、便利なのだ。
それをオーバーロードという。

追加するパラメータは、Premium(プレミアム)要するに英語で「割り増し」の意味。

public NakigotoOsikari(string nakigoto, string oshikari)            ← 従来のコンストラクタ
public NakigotoOsikari(string nakigoto, string oshikari, int premium)   ← 今回追加する"プレミア付き" のコンストラクタ

※「態度が悪いとオシリにプレミアがついてより痛くなる」サディスティック、ボッキーなシステムです

B Loading クラスに、データを追加する。

list.Add(
  new NakigotoOsikari(
    "(やめろ|うるせえ|くたばれ)",
    "反抗的なので{0}回増やしました。", 3  ← 割り増し回数(プレミア)の指定
));

p.s. なお、余談だが、"反抗的なので{0}回増やしました。" のなかでの {0} は、次に指定している、割り増し回数 3 に置き換えられる。
それを実現しているのが、this(nakigoto, string.Format(oshikari, premium)) という構文、
ここで、this とは、従来のコンストラクタの呼び出し、string.Format(oshikari, premium) は、{0} を 3 に置き換える書式処理だ。

作成したクラスを利用する/動作確認 ( No.25 )
日時: 2022/03/27 12:25
名前: REDCHEEKS

http://mediasp.kir.jp/img20220326/imgloglog-box/img20210916234204.png

@ Form1.cs を右クリックし
A「コードの表示(C)」を選択する。
B 割り増し追加
C 開始ボタンをクリックする。
D 実行結果(回数が増やされている!)。