I am trying to use a simple example of an extension method and cannot increase or decrease the value of int. Here is the code
static class ExtensionMethodsExp
{
public static void Print(this object o)
{
Console.WriteLine("This is print: {0}", o.ToString());
}
public static int Double(this int i)
{
return i * 2;
}
public static int Decrement(this int i)
{
return i--;
}
public static int Increment(this int i)
{
return i++;
}
}
}
Program code
class Program
{
static void Main(string[] args)
{
int myNumber = 10;
myNumber.Print();
myNumber = myNumber.Double();
myNumber.Print();
myNumber = myNumber.Decrement();
myNumber.Print();
myNumber = myNumber.Increment();
myNumber.Print();
myNumber.Increment().Double().Print();
Console.ReadKey();
}
}
I get the following output
This print is: 10
This print is: 20
This print is: 20
This print is: 20
This print is: 40
Any idea why Decrement or Increment should not work here. Is there something I'm missing? thanks
Mvsw source
share