.net 如何在内置类中重载运算符?

.net 如何在内置类中重载运算符?,.net,operator-overloading,.net,Operator Overloading,有人提到在例如Color struct中重载+是有意义的。但是我该怎么做呢?我认为它需要在类型内部。没错;无法将运算符重载添加到现有类型(没有扩展运算符)。我不会继续这样做-创建扩展方法add(颜色c1,颜色c2)可能会更干净。运算符涉及两个操作数,您有机会将运算符重载放入所涉及的两种类型中 换句话说,您可以编写自己的自定义类型,并添加使其与颜色交互的运算符,但是如果您希望颜色和int与新运算符交互,那么很抱歉,不,您不能这样做。只是想知道,当+红色和红色时会发生什么?双红?@gaearon:我

有人提到在例如Color struct中重载+是有意义的。但是我该怎么做呢?我认为它需要在类型内部。

没错;无法将运算符重载添加到现有类型(没有扩展运算符)。

我不会继续这样做-创建扩展方法add(颜色c1,颜色c2)可能会更干净。

运算符涉及两个操作数,您有机会将运算符重载放入所涉及的两种类型中


换句话说,您可以编写自己的自定义类型,并添加使其与颜色交互的运算符,但是如果您希望颜色和int与新运算符交互,那么很抱歉,不,您不能这样做。

只是想知道,当
+
红色和红色时会发生什么?双红?@gaearon:我想它应该是类似于
Color.FromARGB(Math.Min(255,c1.A+c2.A),…)