如何创建一个需要TAvg的泛型方法来实现Operator +? [英] How to create a generic method, that requires TAvg, to implement Operator + ?

查看:101
本文介绍了如何创建一个需要TAvg的泛型方法来实现Operator +?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我写的方法如下:

Hi

I'm write a method as follows:

public static TAvg Avg<tavg>(TAvg a, TAvg b)
    {
        return (a + b)/2;
    }





但是怀疑的错误:'运营商'+'不能应用于操作数输入' TAvg '和' TAvg '。',我见过。



这是我的问题。





我的问题是:

如何创建一个通用方法,需要 TAvg ,以实现Operator +?



But the error with a suspect: 'Operator '+' cannot be applied to operands of type 'TAvg' and 'TAvg'.', I've witnessed.

This was my problem.


And my question is:
How to create a generic method, that requires TAvg, to implement Operator + ?

推荐答案

使用动态:< br $> b $ b

Use dynamic:

return ((dynamic)a + (dynamic)b)/2;





如果在运行时没有为这两种类型定义+运算符,那将抛出异常。



Which will throw an exception if the "+" operator is not defined at runtime for the two types.


感谢您的帮助。

工作



Thanks for help to me.
Worked

public static TAvg Avg<TAvg>(TAvg a, TAvg b)
        {
            var result =(TAvg)(((dynamic) a + (dynamic) b) / 2);
            return result;
        }


这篇关于如何创建一个需要TAvg的泛型方法来实现Operator +?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆