ホームページ > バックエンド開発 > C++ > C#のオーバーライドとシャドーイング:各テクニックをいつ使用する必要がありますか?

C#のオーバーライドとシャドーイング:各テクニックをいつ使用する必要がありますか?

Linda Hamilton
リリース: 2025-01-28 13:56:09
オリジナル
919 人が閲覧しました

Overriding vs. Shadowing in C#: When Should You Use Each Technique?

C#書き換えと隠れのメソッド継承の観点から、C#は、基本クラスのメソッドを再定義するための2つの異なるテクノロジーを提供します:書き換えと隠蔽。これらの2つのテクノロジーは、作業方法と継承チェーンへの影響という点で根本的な違いがあります。 隠された

Hiddenを使用すると、基礎中国の方法と同じ名前の新しい方法を作成できますが、

キーワードは使用されません。この方法は、派生クラスのローカルメンバーになり、基礎方法を隠しています。派生インスタンスが非表示の方法を呼び出すと、継承レベルの構造に関係なく、このクラスの実装を直接実行します。 例:

override この例では、この例では、メソッド

はクラス

に隠されており、メソッドは書き直されています。 (instance)が呼び出すと、

in
<code class="language-csharp">class A
{
   public int Foo(){ return 5;}
   public virtual int Bar(){return 5;}
}
class B : A
{
   public new int Foo() { return 1;}     //隐藏
   public override int Bar() {return 1;} //重写
}</code>
ログイン後にコピー
in

が直接戻ります。 Foo B書き換えBarclB 対照的に、書き換えにはBキーワードが必要です。これにより、基本クラスで仮想メソッドの新しい実装を定義できます。派生インスタンスが書き換え方法を呼び出すと、継承チェーンに従って派生クラスに実装されます。 Foo 1例:BFoo

前の例では、

の方法が書き換えられます。 がを呼び出すと、が返されます。なぜなら、

in

が書き換えているからです。 override

非表示と書き換えの違い

隠されたものと書き換えの選択は、特定のニーズに依存します。

非表示:B基本クラスの継承方法を非表示にし、ローカル実装を使用する場合は、Hiddenを使用します。 Bar clB再加工:Bar継承方法を再定義し、派生クラスの実装を実行する場合は、書き換えを使用します。 1 B

以上がC#のオーバーライドとシャドーイング:各テクニックをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート