I have code that computes the absolute value of a custom value type:
public Angle Abs(Angle agl)
{
return (360 - Angle.Degrees);
}
This isn't my actual application but it will serve my point. Then I have a method like so:
public dynamic DoStuff(Foo f)
{
// f contains a list of value types: int, double, decimal, angle
return Abs(f[0]);
}
public dynamic this[int intIndex] // Within class Foo
{
get { return Items[intIndex]; }
}
My question is this: in the function DoStuff() how do I overload the Abs() function to accept the normal value types using System.Math.Abs(), but also accept the type of Angle?
C# 4.0 supported answers are available.
I'm willing to have a separate function; something like this [assuming it would actually work]:
public dynamic Abs(dynamic dyn)
{
if (dyn.GetType() = typeof(Angle))
{
return Abs(dyn);
}
else
{
return System.Math.Abs(dyn);
}
}