0

DropDownList から継承する独自のカスタム クラスがあります。Items.Add プロシージャをオーバーライドする方法はありますか? どのように?

4

2 に答える 2

1

このクラスをインターフェイスに提供するなど、このクラスから継承したい特定の理由はありますか? 答えが「いいえ」の場合は、継承よりも構成を使用する必要があります。あなたの問題は存在しません。

継承よりも構成を優先しますか? を参照してください。

于 2010-07-11T22:30:15.943 に答える
0

デフォルトの Add 機能をオーバーライドすることはできません --封印されています -- しかし、クラスListItemCollectionを拡張する拡張メソッドを作成することはできます。ListItemCollection次に例を示します。

namespace Truthseeker.Extensions
{
    using System.Web.UI.WebControls;

    public static class ListItemCollectionExtensions
    {
        public static void Add(
            this ListItemCollection collection, 
            ListItem item, 
            string extraParameter)
        {
            if (extraParameter.Contains("Add"))
                collection.Add(item);
        }
    }
}

次に、次のように記述できます。

DropDownList ddl = new DropDownList();
ddl.Items.Add(new ListItem("text", "value"), "Add");
于 2010-07-11T22:15:11.070 に答える