使用数学运算符对XNA Vector2进行操作是可行的,这要归功于重载,例如:
new Vector2(1.0f, 2.0f) + new Vector2(2.0f, 3.0f) // {X:3 Y:5}
(非常方便)
但是看看这个:
// Okay, this works fine.
new Vector2(1.0f, 2.0f) = new Vector2(1.0f, 2.0f) // true
// Is it checking for type equality?
new Vector2(1.0f, 2.0f) = new Vector2(6.0f, 5.0f) // true
为什么它不调用Vector2的重载函数
op_Equality
(同样适用于op_Inequality
)?如果直接调用,它们可以正常工作。PS:如果有影响(我认为没有),我在Mono和Monogame下运行这个程序。
PPS:这主要只是让我无法使用
=
而已,但如果我真的需要,我可以使用Vector2.Equals。
(=)
吗? - Daniel