【发布时间】:2017-05-05 06:22:34
【问题描述】:
我有 C# 代码,基础 class A 和派生 class B:
public class A
{
public virtual void print() {Console.WriteLine("a"); }
}
public class B:A
{
public override void print() { Console.WriteLine("b"); }
}
static void Main(string[] args)
{
A a= new B();
//In c++ I can use .Base:: to call base method from derived class instance
a.Base::print();
}
我无法修改这两个类,我不知道我可以在 C# 中做什么,有什么建议吗?
另外,感谢大家参与讨论,我想澄清一下为什么我需要这种行为:
在.net 框架中,我们有一个接口IPostBackDataHandler 来处理回发。里面有一个方法
public bool LoadPostData( string postDataKey, NameValueCollection postCollection )
当我实现它并测试时,我发现有时给定的回发类型 postCollection 是 NameValueCollection ,而其他时候是 HttpValueCollection (a NameValueCollection 的派生类)
那么,如果它是一种 HttpValueCollection,当我从中获取项目时,例如。 postCollection['ControlID'] 并且我在此控件中输入 html,HttpValueCollection.get_item() 将始终验证输入并将其视为缺点。虽然 NameValueCollection.get_item() 不会
我不希望它自动进行验证,至少我应该决定它是否应该被验证,不是吗?
【问题讨论】:
标签: c# inheritance