5

MSDN によると、"new" キーワードをメソッドの非表示に使用すると、警告のみが抑制されます。

http://msdn.microsoft.com/en-us/library/435f1dw2.aspx

メソッドの隠蔽を実行するために、この「新しい」キーワードが本当に必要ですか? 同じメソッド名を持つ子クラスがあるが、それがオーバーライドされていることを明示的に述べていない場合、それは本質的に同じことではなく、警告が表示されるだけですか? 私の理解が正しいか教えてください。ありがとう

4

9 に答える 9

1

「new」を使用する場合と「newを使用しない場合」の唯一の違いは、「new」キーワードを使用しない場合にコンパイラ警告が表示され、発生している不注意なメソッドの非表示を開発者に警告することです。次のURLには、メソッドの非表示と、「new」を使用する場合と「newを使用しない場合」の違いを説明する優れたビデオもあります。

于 2012-06-12T21:16:25.083 に答える
1

メソッドを隠しながら new キーワードを使用するのは、「プログラマーの意図を明確にする」ためです。これにより、プログラマーによる偶発的な非表示が回避されます。

new キーワードが存在しない場合、コンパイラは警告を発行し、存在するかのように扱います。

詳細については、Override および New キーワードを使用したバージョン管理 (C# プログラミング ガイド) を参照してください。

于 2009-07-23T07:52:47.090 に答える
0

みんなありがとう。非表示とオーバーライドの違いを認識しています。非表示に「new」を使用する場合と「new」を使用しない場合に機能的な違いがあるかどうかに興味がありました。あなたのすべての回答によると、誰かがそれがよりクリーンなコードになり、将来必要になるかもしれないという点で良い点を挙げていたようですが、そうではないようです。ありがとうございます!

于 2009-07-23T08:08:37.403 に答える