小编Fou*_*aks的帖子

自定义Generic.IEqualityComparer(Of T)-编译器错误

我正在尝试实现一个简单的IEqulityComparer以与LINQ集合一起使用。我编写了以下代码,出于讨论目的,这些代码简化为最简单的形式...

Public Structure bob
    Dim SiteID As Integer
    Dim fred As String
End Structure

Public Class insCompare
    Implements System.Collections.Generic.IEqualityComparer(Of bob)

    Public Function Equals(ByVal x As bob, ByVal y As bob) As Boolean
        Return IIf(x.SiteID = y.SiteID, True, False)

    End Function

    Public Function GetHashCode(ByVal x As bob) As Integer
        Return x.SiteID.GetHashCode()

    End Function

End Class
Run Code Online (Sandbox Code Playgroud)

我的问题是两个函数都抛出编译器警告“函数'getHashCode'(或'Equals')在基类'Object'中遮盖了可覆盖的方法。要覆盖基类方法,必须将该方法声明为'Overrides '。”

但是,如果我将它们声明为Overrides,则会出现错误“函数'GetHashCode'无法声明为Overrides,因为它没有覆盖基类中的函数。”!

我还在“ Implements”行上收到编译器错误,以至于我必须实现“ getHashCode”,但我认为这是第一个问题的结果。

我所有的研究都表明我应该没事-有人知道了吗?

linq vb.net compiler-warnings iequalitycomparer

5
推荐指数
2
解决办法
4956
查看次数

Oracle SQL查询中的常量

我是Oracle新手(虽然熟悉SQL)并且必须编写一个相当复杂的查询,其中多次使用从当前日期派生的值.不是每次计算值,而是为此目的声明常量似乎是显而易见的.

但是,当我尝试在后续SELECT语句中使用我的DateIndex常量时(我希望根据"DateIndex"返回值),解析器告诉我它正在执行SELECT INTO.

我所拥有的(简化为最低形式)是......

 DECLARE DateIndex CONSTANT NUMBER(10,0) := 24;

 BEGIN
      SELECT DateIndex
      FROM DUAL;
END;
Run Code Online (Sandbox Code Playgroud)

是否只能在选择表而不是返回结果时使用常量?看起来很奇怪.

请注意,我没有对数据库的写权限.

非常感谢您的帮助.

sql database oracle constants

2
推荐指数
1
解决办法
3万
查看次数