我正在编写图形程序,我需要检查边缘的末端节点是否等于节点
Public Function isAdjacent(ByRef n As node) As Boolean
For Each edge In edges
If ((edge.endNode = n) Or ((Not edge.isDirected) AndAlso edge.startNode = n)) Then
Return True
End If
Next
Return False
End Function
edges
是hashset。 edge.endNode = n
和edge.start = n
下的错误显示为
运算符'='未定义类型'node'和'node'。
我是否需要重载Equals方法?如果是这样,我是否也不需要重载我不想做的GetHashCode方法,或者是否有一种更容易的方法来做到这一点我错过了?
答案 0 :(得分:1)
如果要检查引用相等性,请改用Is
关键字。
If ((edge.endNode Is n)
如果不是,您需要覆盖Equals
(我强烈建议您覆盖GetHashCode
)
答案 1 :(得分:0)
我的猜测是你必须重载Equals方法。关于.NET中的相等覆盖的This article详细说明了这是如何完成的。希望这会有所帮助。