私はこのような方法を持っています:
private static double ComputePercentage(ushort level, ushort capacity)
{
double percentage;
if(capacity == 1)
percentage = 1;
// do calculations...
return percentage;
}
予想されるメソッドのタイプ (または関数に入れられるタイプ) に応じて、10 進数または倍精度のいずれかを返すことができる「タイプ T」のようなジェネリック型にすることは可能ですか?
「1」のような数値をジェネリック型に割り当てることができないため、このようなことを試しましたが、機能しませんでした。後で「where T :」も使用してみましたushort capacity)
が、まだわかりませんでした。
private static T ComputePercentage<T>(ushort level, ushort capacity)
{
T percentage;
if(capacity == 1)
percentage = 1; // error here
// do calculations...
return percentage;
}
これは可能ですか?確かではありませんでしたが、この投稿は、私がやろうとしていることはまったく不可能であることを示唆しているかもしれないと思いました.
編集
回答者の皆様、多くの良い回答をありがとうございました。Tomasが指摘したように、これはおそらく 2 つの別々の方法で行うのが最適です。TreDubZeddとTcKsの両方で指摘されているように、必要な機能を取得するための最良の方法は、double または decimal を暗黙的に返すことができる暗黙的な変換を使用することです。