作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法可以做到这一点?
我想要一个 T 的集合类,它能够对 T 类型进行加法、减法。我想保持 T 通用,而不是使用相同代码但类型不同的几个集合。
您将如何约束通用 T ?
示例:我想定义一个集合(T 为 IDoMaths)。我不想使用命名方法创建自己的整数等类来执行操作,因为我认为它会更慢。这部分代码实际上被非常频繁地调用,并且往往是性能的瓶颈。
最佳答案
不幸的是你不能。
Marc Gravell 有一个解决方法 implemented作为MiscUtil 的一部分(也有 more general article)。它很整洁,但是您确实会丢失静态类型检查。
类似地(就丢失类型检查而言)新的 dynamic
C# 4.0 的特性允许您以任意方式使用运算符,仅在执行时解析它们:
dynamic x = 10.0;
dynamic y = 3.0;
double z = x / y; // z = 3.3333333 (double arithmetic)
dynamic a = 10;
dynamic b = 3;
int c = a / b; // c = 3 (integer arithmetic)
Enumerable.Sum
的动态形式。 .我即将对其进行基准测试。 Marc Gravell 写了一个
blog post最近也是关于这个的。
Option Strict
关闭您想要后期绑定(bind)的代码部分将产生相同的效果,但我对 VB 的熟悉程度不如对 C# 的熟悉,恐怕。
关于.net - 如何约束泛型参数以实现基本数学运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/917961/
我是一名优秀的程序员,十分优秀!