C# 中的方法過載和歧義
利用方法過載,你可以在同一作用域內為同一函式名稱設定多個定義。函式的定義必須透過引數列表中的型別和/或引數個數相互區別開來。
讓我們來看個例子。在此,呼叫將轉到具有單個引數的方法 −
示例
using System;
class Student {
static void DisplayMarks(int marks1 = 90) {
Console.WriteLine("Method with one parameter!");
}
static void DisplayMarks(int marks1, int marks2 = 95) {
Console.WriteLine("Method with two parameters!");
}
static void Main() {
DisplayMarks(97);
}
}現在讓我們看看將產生模稜兩可的呼叫的是什麼。這裡的混淆之處在於,第二個方法將需要兩個引數作為預設值,而第一個方法需要將一個引數預設。這產生了歧義。
示例
using System;
class Student {
static void DisplayMarks(int marks1 = 90, int marks2 = 80) {
Console.WriteLine("Method with two parameters!");
}
static void DisplayMarks(int marks1, int marks2 = 80, marks3 = 98) {
Console.WriteLine("Method with three parameters!");
}
static void Main() {
DisplayMarks(80);
}
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP