2017-04-03 3 views
-3
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はオブジェクト型ではありません

+5

エラーは何ですか? – Steve

+0

問題を説明してください。 –

+1

追加結果が 'double'型であることを保証しました。それをボックスに入れ、 'int'としてunboxしようとします。列挙型の特別なオプションの外では、ボックス化されたものとは異なるデータ型にunboxすることはできません。 –

答えて

0

これを使用してください。

return (T)Convert.ChangeType(Convert.ToDouble(a) + Convert.ToDouble(b), typeof(T)); 

結果をタイプ「T」に変換します。

+0

ありがとうございます。私の英語は貧しいです、質問はとても悪いと書いています –

+0

あなたの問題を解決した場合は、答えとしてそれを受け入れてください。 – Parag

関連する問題