0
abstract class SettingSaver
    {


        public abstract void add(string Name, string Value);
        public abstract void remove(string SettingName);


    }


class XMLSettings : SettingSaver
    {

        public override void add(string Name, string Value)
        {
            throw new NotImplementedException();
        }

        public override void remove(string SettingName)
        {
            throw new NotImplementedException();
        }




    }

とにかく、XMLSettings クラスの add 関数の名前を addSetting に変更することはできますが、SettingSaver の add 関数をオーバーライドするようにしてください。派生クラスで確実にオーバーライドする必要があることはわかっていますが、別の名前を使用できるかどうかを知りたいだけです:)事前に感謝します:D

4

4 に答える 4

9

いいえ、C# でメソッドをオーバーライドするときに名前を変更することはできません。

もちろん、のメソッドを呼び出すだけで、メソッドをオーバーライドして実装できます。

(命名規則のメモでは、メソッドは通常、大文字で始まる PascalCased です。パラメーターは通常、小文字で始まるキャメルケースです。)

于 2010-05-17T11:02:23.520 に答える
3

いいえ、できません。

同じ機能を持つ別のメソッドを追加できますが、継承されたメソッドを非表示にしたり、名前を変更したりすることはできません。

この例として、フレームワークの Stream クラスにはClose()というメソッドがあります。これは Dispose() を呼び出すのとまったく同じですが、使用を開始するためにスチームを「開く」という概念に沿った名前が付けられています。彼らは Dispose() メソッドを削除していません。クライアントが同じ機能にアクセスするための別の (より適切な名前の) 方法を提供しただけです。

于 2010-05-17T11:03:00.803 に答える
3

いいえ - それはポリモーフィズムに多少違反します (親ができることはすべて、子もできるはずです)。

新しいメソッドを作成し、古いメソッドでメタデータを使用して、クラスに対して開発しているすべての人に新しいクラスを使用するように指示できます。

于 2010-05-17T11:03:16.670 に答える
1

メソッド名と引数は、メソッドを識別するものです。メソッド名を変更すると、別のメソッドを識別することになります。オーバーライドはサブクラスで同じメソッドを定義することであるため、同じメソッド名を使用する必要があります。

于 2010-05-17T11:07:04.083 に答える