以前にインターフェースについて質問したところ、素晴らしい回答がいくつかありました。本当に柔軟なコードの開発を開始できることをとても楽しみにしています。
仮想メソッドのオーバーライドについて質問があります。
現在、Community Server SDK を使用しています。コントロールの 1 つは、「タグ」パンくずです。したがって、関連するオブジェクトの「タグ」がリストされます。
<CSBlog:TagBreadCrumb />
タグを使用して、管理者がレイアウトに表示されるコンテンツの特定のスポットをターゲットにできるようにしていますが、これらのタグはエンド ユーザーには関係ありません。たとえば、「Home_Main」タグを使用してホームページのメイン パネルをターゲットにしていますが、ユーザーにそれを見せたくありません。
私は Community Server の SDK を持っているので、「タグ リスト」をレンダリングするコントロールを見つけ、必要な変更を加えましたが、多くの理由でコアを変更するのは良くないと理解しています。
したがって、私がやりたいことは、ベース コントロールと本質的にほぼ 100% 同一である独自のコントロールを作成することですが、1 つのメソッドをオーバーライドします。
メソッドは次のとおりです。
public virtual string FormatTags(string[] tagList)
内部にはタグをフォーマットするコードがあり、除外する「タグ」の構成ファイルをチェックすることを除いて、同じことをすべて行う独自のコードを書きたいと思います。
したがって、私の理解では、ベース コントロールから派生したコントロールを作成し、独自の FormatTags() メソッドを記述できます。これは正しいですか?
変更する必要があるのはその 1 つの側面だけですが、これは、そのメソッドの元のコードを基本クラスからコピーして、そこに必要なものを変更する必要があることを意味しますか? ある場所からコードを正しくコピーしているとは思えませんが、基本クラスのコードを変更せずにメソッドを拡張する別の方法を知りません。
提案をありがとう。