How to create a generic C# method that can return either double or decimal?

Posted by CrimsonX on Stack Overflow See other posts from Stack Overflow or by CrimsonX
Published on 2010-05-27T22:22:41Z Indexed on 2010/05/27 22:31 UTC
Read the original article Hit count: 150

Filed under:
|

I have a method like this:

private static double ComputePercentage(ushort level, ushort capacity)
{
      double percentage;
      if(capacity == 1)
        percentage = 1;

      // do calculations...
      return percentage;
}

Is it possible to make it of a generic type like "type T" where it can return either decimal or double, depending on the type of method expected (or the type put into the function?)

I tried something like this and I couldn't get it to work, because I cannot assign a number like "1" to a generic type. I also tried using the "where T :" after ushort capacity) but I still couldn't figure it out.

private static T ComputePercentage<T>(ushort level, ushort capacity)
{
      T percentage;
      if(capacity == 1)
        percentage = 1; // error here

      // do calculations...
      return percentage;
}

Is this even possible? I wasn't sure, but I thought this post might suggest that what I'm trying to do is just plain impossible.

© Stack Overflow or respective owner

Related posts about c#

Related posts about generics