Computer >> Máy Tính >  >> Lập trình >> C#

Phương thức bị quá tải và sự mơ hồ trong C #

Với tính năng nạp chồng phương thức, bạn có thể có nhiều định nghĩa cho cùng một tên hàm trong cùng một phạm vi. Định nghĩa của hàm phải khác nhau theo kiểu và / hoặc số lượng đối số trong danh sách đối số.

Hãy để chúng tôi xem một ví dụ. Trong cuộc gọi này, lệnh gọi sẽ chuyển đến phương thức với một tham số duy nhất -

Ví dụ

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);
   }
}

Bây giờ chúng ta hãy xem điều gì tạo ra một cuộc gọi không rõ ràng. Ở đây, sự nhầm lẫn là phương thức thứ hai sẽ cần hai đối số làm mặc định, trong khi methid đầu tiên cần một đối số được đặt mặc định. Điều này tạo ra sự mơ hồ.

Ví dụ

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);
   }
}