【发布时间】:2009-06-15 12:49:34
【问题描述】:
假设我有:
public class Fruit
{
public static List<String> Suppliers { get; protected set; }
static Fruit()
{
Suppliers = new List<String>();
Suppliers.Add("Company A");
}
}
public class Banana : Fruit
{
static Banana()
{
Suppliers.Add("Company B");
}
}
如果我只是在调用代码中这样做:
foreach(String supplier in Banana.Suppliers)
Console.WriteLine(supplier);
我明白了:
- A公司
如果我这样做:
Banana b = new Banana();
foreach(String supplier in Banana.Suppliers)
Console.WriteLine(supplier);
我得到(想要的结果):
- A公司
- 公司B
编辑: 阅读回复后,我知道这是行不通的。
我在生产代码中想要的是对象类型共有的值列表,我想根据子类型动态地将不同的值添加到该字符串列表中。 (上下文是 LDAP - 所有条目都有 objectClass=top 并且所有用户对象都有 objectClass=user,top,organizationPerson,person)。如果没有人有更好的建议,我猜我必须在每个子类中使用一个接口或不同的列表或其他东西?
【问题讨论】:
-
您应该为您的编辑提出一个新问题。
-
@Josh - 我认为上下文仍然是相同的,我只是认为我认为尝试做我正在尝试的事情是有正当理由的......
-
我不认为@Josh 质疑您的问题的有效性,只是如果您将编辑拆分为自己的问题,带有适当的标题并且没有原始上下文的包袱。
标签: c# inheritance