namespace ConsoleApp { public static class SlUtils { public static void OffsetSL(this System.Windows.Point p, double CenterX, double CenterY) { p.X += CenterX; p.Y += CenterY; // p = new System.Windows.Point(p.X, p.Y); does not help either } } class Program { static void Main(string[] args) { System.Windows.Point p = new System.Windows.Point(0, 0); p.OffsetSL(10, 20); Console.WriteLine("{0},{1}", p.X, p.Y); // prints {0,0} // FAIL p.Offset(10, 20); Console.WriteLine("{0},{1}", p.X, p.Y); // prints {10,20} Console.ReadKey(); } } }I was so wrong :) The extension method cannot modify a value type. What you can do is return from an extension method (instead of void) the value you want... ah well you can't have Everything.
Enjoy!
No comments:
Post a Comment