●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

引数の違いで同じ名前が使える「オーバーロード(Overload)」とは?

C#では、同じ名前のメソッドやコンストラクタを、引数の数や型が異なるかたちで複数定義することができます。
この仕組みをオーバーロード(Overload)と呼びます。

オーバーロードのメリット

  • 同じ機能名で使いやすい
  • 引数の違いで柔軟に対応可能
  • コードの見通しが良くなる

オーバーロードの例(メソッド)

public class Calculator {
    // int型の足し算
    public int Add(int a, int b) {
        return a + b;
    }

    // double型の足し算
    public double Add(double a, double b) {
        return a + b;
    }

    // 3つのint型の足し算
    public int Add(int a, int b, int c) {
        return a + b + c;
    }
}
    
Calculator calc = new Calculator();
Console.WriteLine(calc.Add(2, 3));         // → 5
Console.WriteLine(calc.Add(2.5, 3.5));     // → 6.0
Console.WriteLine(calc.Add(1, 2, 3));      // → 6
    

オーバーロードの条件

以下のように、**名前は同じでも、引数の「数」「型」「順序」**が異なっていればOKです。

  • 引数の数が違う → OK
  • 引数の型が違う → OK
  • 引数の順序が違う → OK
  • ただし、戻り値の型だけが違うのはNG

オーバーロードの例(コンストラクタ)

public class Person {
    public string Name;
    public int Age;

    // 引数なし
    public Person() {
        Name = "未設定";
        Age = 0;
    }

    // 名前だけ指定
    public Person(string name) {
        Name = name;
        Age = 0;
    }

    // 名前と年齢を指定
    public Person(string name, int age) {
        Name = name;
        Age = age;
    }
}
    

オーバーロードとオーバーライドの違い

項目 オーバーロード オーバーライド
意味 引数の違いで同名のメソッドを複数定義 親クラスのメソッドを子クラスで上書き
継承が必要? 不要 必要
キーワード なし virtual / override

まとめ

オーバーロード(Overload)は、同じメソッド名やコンストラクタ名で、引数のパターンを複数用意できる便利な仕組みです。
ユーザーにとってわかりやすく、コードの再利用性も高められます。
使い分けやすさ・柔軟性を重視した設計にとても役立ちます!

 

C#関連用語集

−−−−−  C#  −−−−−

C#の基本単位「クラス(Class)」とは?

クラスから生まれる実体「オブジェクト(Object)」とは?

クラスの実体「インスタンス(Instance)」とは?

オブジェクトの初期化に使う「コンストラクタ(Constructor)」とは?

フィールドへのアクセスを制御!「プロパティ(Property)」とは?

クラスが持つデータ「フィールド(Field)」とは?

クラスの動作を定義する「メソッド(Method)」とは?

既存のクラスを引き継ぐ「継承(Inheritance)」とは?

同じ命令で異なる動きができる「多態性(Polymorphism)」とは?

データを守る「カプセル化(Encapsulation)」とは?

土台だけを用意する「抽象クラス(Abstract Class)」とは?

ルールを定める仕組み「インターフェース(Interface)」とは?

親クラスのメソッドを上書きする「オーバーライド(Override)」とは?

引数の違いで同じ名前が使える「オーバーロード(Overload)」とは?

C#で自分自身を指す「thisキーワード」とは?

親クラスの機能を使う「baseキーワード」とは?

インスタンス不要で使える「static(静的)」とは?

値を変えたくないときに使う「readonly / const(定数)」とは?

メソッドを渡せる仕組み「delegate(デリゲート)」とは?

「何かが起きたら知らせる」仕組み「event(イベント)」とは?

簡潔な書き方ができる「ラムダ式(Lambda Expression)」とは?

C#で使える「LINQ(言語統合クエリ)」とは?

エラーから安全に回復する「例外処理(try-catch-finally)」とは?

意図的にエラーを発生させる「throw(スロー)」とは?

名前空間やリソースを扱う「usingディレクティブ」とは?

クラスの整理に便利な「namespace(名前空間)」とは?

型を柔軟に扱う「ジェネリクス(Generics)」とは?

データの集まりを扱う「コレクション(List / Dictionary / HashSet)」とは?

処理を止めずに進める「非同期処理(async / await)」とは?

簡単に使えて便利!「自動実装プロパティ」と「プロパティ初期化子」