メソッドにおけるオーバーロード(C#)

  • このエントリーをはてなブックマークに追加

スポンサーリンク

※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~

オーバーロードとは?

オーバーロードとは、「戻り値や引数は異なるが、名前は同じメソッドを複数定義する」ことを意味します。

※オーバーロードを日本語に訳すとするなら「多重定義」です

オーバーロードの簡単な例

ConsoleクラスのWriteLineメソッドは、オーバーロードされています。

※上のようなコードを見たい場合は、まず、Visual Studio上で、Console.WriteLineと書いてカーソルをあてます。そのまま「F12」を押すと定義に移動します。

ソースコード

実行結果

test
12
3.45

WriteLineメソッドの引数がstring型だった場合、

WriteLine(string value);

が使用されます。

一方で、引数がint型だった場合、

WriteLine(int value);

が使用されます。

もしもオーバーロードがなかったら?

もしもオーバーロードがなかったら、引数だけが異なり内容が同じメソッドに対して、それぞれ別の名称を割り振る必要が出てきます。

例えば、string型をコンソールに出力するメソッドにWriteLineという名称を割り振ったとします。

その後、int型をコンソールに出力するメソッドとして作りたくなったとします。

この時、オーバーロードがなければ、WriteLine01などの異なる名前を付けないといけません。

されにその後、double型のメソッドとして作りたくなったら、新たにWriteLine02といったような異なるメソッド名を用意しないといけません。

こうなると、機能は同じなのに、異なる名前で管理されて、非常に不便になります。

オーバーロードの使い方

オーバーロードをより使いこなすにあたって、以下の2点を押さえてください。

・引数の組み合わせが同じであるが、戻り値が異なる場合、オーバーロードはできない
・引数の型の順番が異なる場合、オーバーロードできる

ソースコード

実行結果

年齢:25 名前:トニー
名前:ボブ 年齢:17

関連記事

Unityコースやアプリコースあり。無料体験の申込みあり。
  • このエントリーをはてなブックマークに追加

スポンサーリンク

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)