相关疑难解决方法(0)

.NET泛型中重载运算符约束的解决方案

如果我想要一个只接受重载运算符的类型的泛型方法,例如减法运算符,我该怎么办?我尝试使用接口作为约束,但接口不能有运算符重载.

实现这一目标的最佳方法是什么?

c# generics constraints operator-overloading

33
推荐指数
2
解决办法
1万
查看次数

如何在C#泛型类型参数中强制支持某些运算符?

可能重复:
定义实现+运算符的泛型

我最近在研究一个实现算法的C#类库.关键是我希望库的用户能够选择算法应该使用的机器精度(单或双),并且我正在尝试使用泛型.所以,例如:

    Algorithm<double> a = new Algorithm<double>();
    /** Some initializations here */
    double result = a.Solve();
Run Code Online (Sandbox Code Playgroud)

要么

    Algorithm<float> a = new Algorithm<float>();
    /** Some initializations here */
    float result = a.Solve();
Run Code Online (Sandbox Code Playgroud)

因此,泛型类的类型参数意味着是十进制数(因为在算法代码中我需要使用+,*,/, - ),但我不知道对它施加哪种类型约束.我已经考虑过与所有运营商建立接口,但不幸的是,这是不允许的.有任何想法吗?

否则,是否有可能在C#中获得类似于C++中的模板特化的东西?

谢谢

托马索

.net c# generics constraints operators

6
推荐指数
1
解决办法
552
查看次数

C#作为数字的对象之间的添加

我正在努力寻找以下的最佳方式:

我有两个对象,对象A和B.在程序的某个点上,我知道A和B的类型是int,double或float.我想对它们做一个补充,所以A + B = C.C将按照我们习惯的方式输入,同时在整数,浮点数和双精度之间进行加法.

例如,如果A为int且B为float.然后C将浮动.

c# object

1
推荐指数
1
解决办法
595
查看次数