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);
}
}
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP