zoukankan      html  css  js  c++  java
  • C#泛型的加法运算方法

    有的时候会把double int这类数值放在泛型方法里,就不需要写多份了,但是这个时候也需要进行四则运算,可以写成这个样子

    public static T Add<T>(T num1, T num2) where T : struct, IComparable
            {
                if (typeof(T) == typeof(int))
                {
                    int a = (int)Convert.ChangeType(num1, typeof(int));
                    int b = (int)Convert.ChangeType(num2, typeof(int));
    
                    int c = a + b;
                    return (T)Convert.ChangeType(c, typeof(T));
                }
                else if (typeof(T) == typeof(float))
                {
                    float a = (float)Convert.ChangeType(num1, typeof(float));
                    float b = (float)Convert.ChangeType(num2, typeof(float));
    
                    float c = a + b;
                    return (T)Convert.ChangeType(c, typeof(T));
                }
                else if (typeof(T) == typeof(double))
                {
                    double a = (double)Convert.ChangeType(num1, typeof(double));
                    double b = (double)Convert.ChangeType(num2, typeof(double));
    
                    double c = a + b;
                    return (T)Convert.ChangeType(c, typeof(T));
                }
                else if (typeof(T) == typeof(decimal))
                {
                    decimal a = (decimal)Convert.ChangeType(num1, typeof(decimal));
                    decimal b = (decimal)Convert.ChangeType(num2, typeof(decimal));
    
                    decimal c = a + b;
                    return (T)Convert.ChangeType(c, typeof(T));
                }
    
                return default(T);
            }

    把需要的数值类型都得写一遍,其他运算就照这个样子写

  • 相关阅读:
    Swift的函数与函数指针、闭包Closure等相关内容介绍
    spring+dubbo整合
    常用设计模式-适配器模式
    常用设计模式-工厂模式
    java动态代理
    程序对关系型数据库批量操作
    springboot整合mybatis
    JAVA代码实现多级树结构封装对象
    springboot集成redis缓存
    springboot入门
  • 原文地址:https://www.cnblogs.com/gxrsprite/p/13534472.html
Copyright © 2011-2022 走看看