【发布时间】:2011-09-19 16:43:31
【问题描述】:
我有一个带有一个可选默认参数的基类,子类会自动为其提供一个值:
public class Merchant
{
public string WriteResults(List<string> moreFields = null)
{
List<string> ListOfObjects = new List<string>() {Name, Address};
if (moreFields != null)
{
ListOfObjects.AddRange(moreFields);
}
return ListOfObjects.ToString() //not real output
}
public class SpecificMerchant : Merchant
{
new public string WriteResults()
{
return ((Merchant)this).WriteResults(new List<string>() {
Address, Phone //class-specific parameters
});
}
}
我在调用SpecificMerchant.WriteResults 时使用了new 关键字,因为父类和基类都可以不带参数,但编译器说这是不必要的:
成员“SpecificMerchant.WriteResults()”不隐藏 继承的成员。 new 关键字不是必需的。
为什么?在实践中,我不是重写父方法吗?
【问题讨论】:
-
参见blogs.msdn.com/b/ericlippert/archive/2011/05/09/…——尤其是参见本系列的第三部分。
标签: c# inheritance c#-4.0