私は現在新しいプロジェクトに取り組んでおり、この警告がたくさんあります:
関数 'yyy' は、基本クラス 'zzz' のオーバーライド可能なメソッドをシャドウします。基本メソッドをオーバーライドするには、このメソッドを「オーバーライド」として宣言する必要があります。
すべてをオーバーライドとして配置しても安全かどうか疑問に思っています。これはデフォルトの動作ですか? 多くのテストが行われ、問題を最小限に抑えたいと考えています。
私は現在新しいプロジェクトに取り組んでおり、この警告がたくさんあります:
関数 'yyy' は、基本クラス 'zzz' のオーバーライド可能なメソッドをシャドウします。基本メソッドをオーバーライドするには、このメソッドを「オーバーライド」として宣言する必要があります。
すべてをオーバーライドとして配置しても安全かどうか疑問に思っています。これはデフォルトの動作ですか? 多くのテストが行われ、問題を最小限に抑えたいと考えています。
オーバーライドに変更することは同じではありません。キーワードShadows
を追加して警告をなくすこともできますが、メッセージで長時間実行した場合、それらをオーバーライドに変更すると、以前とは異なる動作が発生する可能性があります。
オーバーライドとシャドウの唯一の違いは、シャドウにはオーバーライドのようなポリモーフィック効果がないことです。そのため、基本クラスのオブジェクトでメソッドを呼び出すと、それがたまたま子クラスのインスタンスを保持していたとしても、基本クラスのメソッドは常に呼ばれた。
ただし、繰り返しますが、その警告が表示される場合は、Shadows
キーワードが追加されていることを意味しますが、それが必要な効果であることを確認するために警告をスローします。自分でキーワードを追加するだけでそれを排除できます. それがあなたが望んでいた動作であると思われる場合Overrides
は、それを追加することもできますが、それらは同等ではないことに注意してください。