リファクタリングの実行中に、次の例のようなメソッドを作成してしまいました。単純化のためにデータ型が変更されました。
私は以前に次のような割り当てステートメントを持っていました:
MyObject myVar = new MyObject();
これは偶然にこれにリファクタリングされました:
private static new MyObject CreateSomething()
{
return new MyObject{"Something New"};
}
これは私の側での切り取り/貼り付けエラーの結果でしたが、new
キーワードin private static new
は有効でコンパイルされます。
質問:new
キーワードはメソッドシグネチャで何を意味しますか?C#3.0で導入されたものだと思いますか?
これはどう違いますoverride
か?
new
メソッド(または他の型メンバー)の修飾子としての使用は、「C#3.0で導入されたもの」ではありません。C#の最初のバージョンからずっと存在しています。