ความแตกต่างอาจเป็นแบบคงที่หรือแบบไดนามิก ในความหลากหลายแบบคงที่ การตอบสนองต่อฟังก์ชันจะถูกกำหนด ณ เวลารวบรวม ในความหลากหลายแบบไดนามิก จะตัดสินใจที่รันไทม์
การเชื่อมโยงฟังก์ชันกับอ็อบเจ็กต์ระหว่างเวลาคอมไพล์เรียกว่าการโยงล่วงหน้า เรียกอีกอย่างว่าการผูกแบบสถิต C# มีเทคนิคสองวิธีในการใช้ Static Polymorphism คือ ฟังก์ชันโอเวอร์โหลด และ โอเวอร์โหลดโอเปอเรเตอร์
ในการโอเวอร์โหลดฟังก์ชัน คุณสามารถมีคำจำกัดความได้หลายแบบสำหรับชื่อฟังก์ชันเดียวกันในขอบเขตเดียวกัน คำจำกัดความของฟังก์ชันต้องแตกต่างกันตามประเภทและ/หรือจำนวนอาร์กิวเมนต์ในรายการอาร์กิวเมนต์
ต่อไปนี้คือตัวอย่างที่แสดงวิธีการใช้ฟังก์ชันโอเวอร์โหลดใน C# -
ตัวอย่าง
using System;
namespace PolymorphismApplication {
class Printdata {
void print(int i) {
Console.WriteLine("Printing int: {0}", i );
}
void print(double f) {
Console.WriteLine("Printing float: {0}" , f);
}
void print(string s) {
Console.WriteLine("Printing string: {0}", s);
}
static void Main(string[] args) {
Printdata p = new Printdata();
// Call print to print integer
p.print(5);
// Call print to print float
p.print(500.263);
// Call print to print string
p.print("Hello C++");
Console.ReadKey();
}
}
} ผลลัพธ์
Printing int: 5 Printing float: 500.263 Printing string: Hello C++