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: 174
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