私は自分のコードで FxCop を実行しており、Operator =
関数を所有しているが.Equals
. 忠実な仲間として、私はこれらを修正しようと努力していますが、問題が発生しました。私はこのように構造を作成しました:-
Public Structure MyStruct
Public my_innards As Integer
Public Shared Operator =(ByVal fs As MyStruct, ByVal ss As MyStruct) As Boolean
Return fs.my_innards = ss.my_innards
End Operator
Public Shared Operator <>(ByVal fs As MyStruct, ByVal ss As MyStruct) As Boolean
Return fs.my_innards <> ss.my_innards
End Operator
End Structure
そして、私は次のように演算子をオーバーライドしようとします.Equals
:-
Public Overrides Function Equals(ByVal ss As MyStruct) As Boolean
Return Me.my_innards = ss.my_innards
End Function
これにより、コンパイルエラーが発生しますfunction 'Equals' cannot be declared 'Overrides' because it does not override a function in a base structure
しかし、私が試してみると:-
Public Function Equals (ByVal ss As MyStruct) As Boolean
Return Me.my_innards = ss.my_innards
End Function
これにより、警告が生成されますfunction 'Equals' shadows an overridable method in the base class 'ValueType'. To override the base method, this method must be declared 'Overrides'
。
つまり、メソッドを として宣言する必要があり、宣言しない場合もありoverrides
ます。誰でもこれで私を助けることができますか?