我有自己的自定义类,它继承自 DropDownList。有没有办法覆盖 Items.Add 程序?如何?
问问题
148 次
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 回答