Mega Code Archive

 
Categories / C# Tutorial / Class
 

Automatic type conversions can affect overloaded method resolution

using System;    class Overload2 {    public void f(byte x) {      Console.WriteLine("Inside f(byte): " + x);    }      public void f(int x) {      Console.WriteLine("Inside f(int): " + x);    }      public void f(double x) {      Console.WriteLine("Inside f(double): " + x);    }  }    class TypeConv {    public static void Main() {      Overload2 ob = new Overload2();        int i = 10;      double d = 10.1;        byte b = 99;      short s = 10;      float f = 11.5F;        ob.f(i); // calls ob.f(int)      ob.f(d); // calls ob.f(double)        ob.f(b); // calls ob.f(byte) -- now, no type conversion        ob.f(s); // calls ob.f(int) -- type conversion      ob.f(f); // calls ob.f(double) -- type conversion    }  } Inside f(int): 10 Inside f(double): 10.1 Inside f(byte): 99 Inside f(int): 10 Inside f(double): 11.5