title: A way of casting a base type to a derived type
body: <p>I'm not sure if this is a strange thing to do or not, or if it is some how code smell...but I was wondering if there was a way (some sort of oop pattern would be nice) to "cast" a base type to a form of its derived type. I know this makes little sense as the derived type will have additional functionality that the parent doesn't offer which is in its self not fundamentally sound. But is there some way to do this? Here is a code example to so I can better explain what I"m asking.</p>
  
  <pre><code>public class SomeBaseClass {
      public string GetBaseClassName {get;set;}
      public bool BooleanEvaluator {get;set;}
  }
  
  public class SomeDerivedClass : SomeBaseClass {
      public void Insert(SqlConnection connection) {
            //...random connection stuff
            cmd.Parameters["IsItTrue"].Value = this.BooleanEvalutar;
            //...
      }
  }
  
  public static void Main(object[] args) {
      SomeBaseClass baseClass = new SomeBaseClass();
      SomeDerivedClass derClass = (SomeDerivedClass)baseClass; 
      derClass.Insert(new sqlConnection());
  }
  </code></pre>
  
  <p>I know this seems goofy but is there any way to accomplish something of this sort?</p>