Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีการโอเวอร์โหลดและความกำกวมใน 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);
   }
}