title: How to call base method from derived class instance in C#?
body: <p>I have C# code, base <code>class A</code> and derived <code>class B</code>:</p>
  
  <pre><code>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();
  }
  </code></pre>
  
  <p>I can't modify these two classes and I don't know what can I do in C#, any suggestion?</p>
  
  <hr>
  
  <p>Additionally, thanks to everyone joining into this discussion, and I would like to clarify why I need this behavior:</p>
  
  <p>In .net framework, we have an interface <strong>IPostBackDataHandler</strong> to handle postback. and in there is a method </p>
  
  <pre><code>public bool LoadPostData( string postDataKey, NameValueCollection postCollection )
  </code></pre>
  
  <p>When I implement it and test, I find sometimes the given postback type of <strong>postCollection</strong> is <strong>NameValueCollection</strong> ,while other time it's <strong>HttpValueCollection</strong> (a derived class of <em>NameValueCollection</em>)</p>
  
  <p>Then,if it is a type of <strong>HttpValueCollection</strong>, when I get item from it, eg. <strong>postCollection['ControlID']</strong> and I input <em>html</em> in this control, <strong>HttpValueCollection.get_item()</strong> will always validate the input and view it as a defect. While <strong>NameValueCollection.get_item()</strong> won't</p>
  
  <p>I don't want it operate validation automatically, at least <strong>I</strong> should decide whether it should be validated, should I? </p>