オーバーロード

同じメソッド名で異なるブロックを実行することができる機能です

サンプル

コード

TestClass testClass = new TestClass();

Console.WriteLine(testClass.test());
Console.WriteLine(testClass.test(1));
Console.WriteLine(testClass.test(1, 3));

class TestClass
{

    public string test()
    {
        return "0つ";
    }

    public string test(int a)
    {
        return "1つ";
    }

    public string test(int a, int b)
    {
        return "2つ";
    }

}

結果

0つ
1つ
2つ

GAS(JavaScript)でのサンプル

JavaScriptには、オーバーロードが存在しません
次のように代用します

function overload() {
  testClass = new TestClass();

  console.log(testClass.test());
  console.log(testClass.test(1));
  console.log(testClass.test(1, 3));
}

class TestClass {

  test0() {
    return "0つ";
  }

  test1(c) {
    return "1つ";
  }

  test2(a, b) {
    return "2つ";
  }

/**
* @param {any[]} args
*/
  test(...args) {
    switch (args.length) {
      case 0:
        return this.test0();
      case 1:
        return this.test1(args[0]);
      case 2:
        return this.test2(args[0], args[1]);
    }
  }

}

C#

Posted by hidepon