public class Calculate
{
public static T Add<T>(T a, T b) where T : struct
{
return (T)((object)(Convert.ToDouble(a) + Convert.ToDouble(b)));
}
}
Calculate.Add(10,20)を実行するとエラーが発生します。C#genericはオブジェクト型ではありません
public class Calculate
{
public static T Add<T>(T a, T b) where T : struct
{
return (T)((object)(Convert.ToDouble(a) + Convert.ToDouble(b)));
}
}
Calculate.Add(10,20)を実行するとエラーが発生します。C#genericはオブジェクト型ではありません
これを使用してください。
return (T)Convert.ChangeType(Convert.ToDouble(a) + Convert.ToDouble(b), typeof(T));
結果をタイプ「T」に変換します。
ありがとうございます。私の英語は貧しいです、質問はとても悪いと書いています –
あなたの問題を解決した場合は、答えとしてそれを受け入れてください。 – Parag
エラーは何ですか? – Steve
問題を説明してください。 –
追加結果が 'double'型であることを保証しました。それをボックスに入れ、 'int'としてunboxしようとします。列挙型の特別なオプションの外では、ボックス化されたものとは異なるデータ型にunboxすることはできません。 –