C# メソッドのオーバーロード
C# メソッドのオーバーロード
この記事では、例を使用して C# でのメソッドのオーバーロードについて学習します。
C# では、名前は同じでもパラメーターの数、型、および順序が異なる複数のメソッドがクラスに存在する場合があります。これは、メソッドのオーバーロードと呼ばれます。例:
void display() { ... }
void display(int a) { ... }
float display(double a) { ... }
float display(int a, float b) { ... }
ここで、display() メソッドがオーバーロードされています。これらのメソッドは同じ名前ですが、異なる引数を受け入れます。
注意 :上記のメソッドの戻り値の型は同じではありません。これは、メソッドのオーバーロードが戻り値の型に関連付けられていないためです。オーバーロードされたメソッドは、同じまたは異なる戻り値の型を持つことができますが、異なるパラメーターを持つ必要があります。
メソッドのオーバーロードは次の方法で実行できます:
1.パラメータの数を変更する
メソッド内のパラメーターの数が異なる場合は、メソッドをオーバーロードできます。
void display(int a) {
...
}
...
void display(int a, int b) {
...
}
ここでは、同じ名前のクラスに 2 つのメソッドがあります - display() .メソッド内のパラメーターの数が異なるため、同じ名前のメソッドが複数存在する可能性があります。たとえば、
using System;
namespace MethodOverload {
class Program {
// method with one parameter
void display(int a) {
Console.WriteLine("Arguments: " + a);
}
// method with two parameters
void display(int a, int b) {
Console.WriteLine("Arguments: " + a + " and " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.display(100);
p1.display(100, 200);
Console.ReadLine();
}
}
}
出力
Arguments: 100 Arguments: 100 and 200
上記の例では、display() をオーバーロードしています。 メソッド:
- 1 つのメソッドには 1 つのパラメーターがあります
- もう 1 つは 2 つのパラメーターを持っています
メソッド呼び出し中に渡された引数の数に基づいて、対応するメソッドが呼び出されます。
p1.display(100)
- 単一のパラメーターでメソッドを呼び出しますp1.display(100, 200)
- 2 つのパラメーターでメソッドを呼び出します
2.パラメータのデータ型を変更する
void display(int a) {
...
}
...
void display(string b) {
...
}
ここには、2 つのメソッドがあります - display() 同じ数のパラメーターを使用します。複数の display() を持つことができます メソッド内のパラメーターのデータ型が異なるため、同じ数のパラメーターを持つメソッド。たとえば、
using System;
namespace MethodOverload {
class Program {
// method with int parameter
void display(int a) {
Console.WriteLine("int type: " + a);
}
// method with string parameter
void display(string b) {
Console.WriteLine("string type: " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.display(100);
p1.display("Programiz");
Console.ReadLine();
}
}
}
出力
int type: 100 string type: Programiz
上記のプログラムでは、display() をオーバーロードしています。 さまざまなタイプのパラメーターを持つメソッド。
メソッド呼び出し中に渡された引数の型に基づいて、対応するメソッドが呼び出されます。
p1.display(100)
-int
でメソッドを呼び出します 型パラメータp1.display("Programiz")
-string
でメソッドを呼び出します 型パラメータ
3.パラメータの順序を変更する
void display(int a, string b) {
...
}
...
void display(string b, int a) {
...
}
ここには、2 つのメソッドがあります - display() .複数の display() を持つことができます メソッド内のパラメーターのデータ型の順序が異なるため、パラメーターの数と型が同じメソッド。たとえば、
using System;
namespace MethodOverload {
class Program {
// method with int and string parameters
void display(int a, string b) {
Console.WriteLine("int: " + a);
Console.WriteLine("string: " + b);
}
// method with string andint parameter
void display(string b, int a) {
Console.WriteLine("string: " + b);
Console.WriteLine("int: " + a);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.display(100, "Programming");
p1.display("Programiz", 400);
Console.ReadLine();
}
}
}
出力
int: 100 string: Programming string: Programiz int: 400
上記のプログラムでは、display() をオーバーロードしています。 パラメータの順序が異なるメソッド。
メソッド呼び出し中に渡された引数の順序に基づいて、対応するメソッドが呼び出されます。
p1.display(100, "Programming")
-int
でメソッドを呼び出します とstring
それぞれのパラメータp1.display("Programiz", 400)
-string
でメソッドを呼び出します とint
それぞれのパラメータ
C言語