What is compile time polymorphism in C#?

Polymorphism can be static or dynamic. In static polymorphism, the response to a function is determined at the compile time. In dynamic polymorphism, it is decided at run-time.

The linking of a function with an object during compile time is called early binding. It is also called static binding. C# provides two techniques to implement static polymorphism. They are Function overloading and Operator overloading.

In function overloading you can have multiple definitions for the same function name in the same scope. The definition of the function must differ from each other by the types and/or the number of arguments in the argument list.

The following is an example showing how to implement function overloading in C# −


 Live Demo

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

         // Call print to print float

         // Call print to print string
         p.print("Hello C++");


Printing int: 5
Printing float: 500.263
Printing string: Hello C++
Samual Sam
Samual Sam

Learning faster. Every day.