Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức nạp chồng và gọi mơ hồ (ambiguity) trong C#


Với nạp chồng phương thức, có thể có nhiều định nghĩa cho cùng tên hàm trong cùng phạm vi, khác nhau về kiểu/số tham số.

Ví dụ: gọi phương thức với một tham số:

Ví dụ

using System;
class Student {
    static void DisplayMarks(int marks1 = 90) {
        Console.WriteLine("Phương thức một tham số!");
    }
    static void DisplayMarks(int marks1, int marks2 = 95) {
        Console.WriteLine("Phương thức hai tham số!");
    }
    static void Main() {
        DisplayMarks(97);
    }
}

Gây ra ambiguous call: phương thức thứ hai cần hai tham số default, phương thức thứ nhất cần một default. Gây nhầm lẫn.

Ví dụ ambiguous

using System;
class Student {
    static void DisplayMarks(int marks1 = 90, int marks2 = 80) {
        Console.WriteLine("Phương thức hai tham số!");
    }
    static void DisplayMarks(int marks1, int marks2 = 80, int marks3 = 98) {
        Console.WriteLine("Phương thức ba tham số!");
    }
    static void Main() {
        DisplayMarks(80);
    }
}