我不知道如何编写我的运算符重载。请帮忙!
我有以下课程:
public class Nodegrid<N> where N : INode
{
}
在 Nodegrid 函数中,我希望能够编写类似的东西
N n1;
N n2;
//...
if (n1 == n2)
//...
但我不知道如何为 N 编写 == 运算符重载。我尝试使用
public static bool operator ==(INode n1, INode n2)
{
return (n1.X == n2.X && n1.Y == n2.Y);
}
但这还不够。
我也尝试过重载 N 本身,但我得到了编译器错误,因为它希望我重载 Nodegrid,而不是 N。
如果可以,请提供代码,如果不能,请提出解决方法!
谢谢 Haighstrom
更新
现在我已经实现了以下解决方法,因为这不能使用运算符重载来完成:
public static class NodeExts
{
public static bool Equals(this INode n1, INode n2)
{
return (n1.X == n2.X && n1.Y == n2.Y);
}
}